当前位置: 首页 > news >正文

【C语言】预处理指令

C语言预处理指令

  • 一、什么是预处理指令
  • 二、预处理指令特点
  • 三、文件包含
  • 四、C标准库<stdio.h>

一、什么是预处理指令

C语言的源文件(.c文件)需要经过编译生成可执行程序,编译操作会将源文件转换成目标文件,对于 VC、VS,目标文件后缀为 .obj;对于GCC,目标文件后缀为 .o,一次编译只能操作一个源文件,如果工程中存在多个源文件,则需要执行多次编译操作。在编译之前对源文件进行简单加工的过程,就称为预处理

二、预处理指令特点

  1. 预处理主要是处理以#开头的命令,末尾没有分号,例如#include <stdio.h>等。预处理命令要放在所有函数之外,而且一般都放在源文件的前面。
  2. 预处理是C语言的一个重要功能,由预处理程序完成。当对一个源文件进行编译时,系统将自动调用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。
  3. 编译器会将预处理的结果保存到和源文件同名的.i文件中。
  4. C语言提供了多种预处理功能,如宏定义、文件包含、条件编译等,有利于模块化程序设计。

三、文件包含

1、#include <文件名>
直接去编译器目录去查找这个文件,有则包含,无则报错。
2、#include “文件名”
(1)如果" “内指定了该文件的全路径,则直接去该路径下查找该文件。
(2)如果” "内没有指定全路径,则先去当前代码文件所在文件夹里查找,如果有就包 含,如果没有就会再去编译器目录下去查找是否有这个文件,有则包含,无则报错。

四、C标准库<stdio.h>

stdio 就是指 “standard input & output”(标准输入输出),源代码中如用到标准输入输出函数时,就要包含这个头文件。例如c语言中的 printf(…); scanf(…);等函数。stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。

相关文章:

【C语言】预处理指令

C语言预处理指令一、什么是预处理指令二、预处理指令特点三、文件包含四、C标准库<stdio.h>一、什么是预处理指令 C语言的源文件&#xff08;.c文件&#xff09;需要经过编译生成可执行程序&#xff0c;编译操作会将源文件转换成目标文件&#xff0c;对于 VC、VS&#x…...

Java基础之多线程JUC全面学习笔记

目录初识多线程多线程的实现方式常见的成员方法线程安全的问题死锁生产者和消费者线程池自定义线程池初识多线程 什么是多线程? 线程 线程是操作系统能够进行运算调度的最小单位。线程被包含在进程之中&#xff0c;是进程中的实际运作单位。 简单理解:应用软件中互相独立&…...

13.CSS文本样式

文本样式 h1 {color: blue; }● 回顾上一节的内容&#xff0c;我们让h1标题的文字变成了蓝色&#xff0c;注意如果html中有多个h1标签&#xff0c;那我们这种写法所有的h1标签都会变成蓝色&#xff0c;除了颜色&#xff0c;本节我们将学习更多的CSS属性 文字大小font-size h…...

西恩科技更新招股书:IPO前大手笔分红“套现”, 赵志安为实控人

2月14日&#xff0c;上海西恩科技股份有限公司&#xff08;下称“西恩科技”&#xff09;更新了招股书&#xff08;申报稿&#xff09;。据贝多财经了解&#xff0c;西恩科技于2022年8月12日递交上市申请材料&#xff0c;准备在创业板上市&#xff0c;此次是西恩科技第二次更新…...

【CentOS】有关时间的设置

目录环境信息date语法信息查看时间设置时间设置日期tzselecttimedatectl语法显示当前及所有时区修改时区hwclock语法读取硬件时钟使用硬件时钟设置系统时间使用系统时间设置硬件时钟如何理解硬件时钟和系统时钟环境信息 CentOS 7 date 语法信息 date --help用法&#xff1a…...

OpenCV制作Mask图像掩码

一、掩膜&#xff08;mask&#xff09; 在有些图像处理的函数中有的参数里面会有mask参数&#xff0c;即此函数支持掩膜操作&#xff0c;首先何为掩膜以及有什么用&#xff0c;如下&#xff1a; 数字图像处理中的掩膜的概念是借鉴于PCB制版的过程&#xff0c;在半导体制造中&am…...

C++STL剖析(九)—— unordered_map和unordered_multimap的概念和使用

文章目录1. unordered_map的介绍和使用&#x1f351; unordered_map的构造&#x1f351; unordered_map的使用&#x1f345; insert&#x1f345; operator[ ]&#x1f345; find&#x1f345; erase&#x1f345; size&#x1f345; empty&#x1f345; clear&#x1f345; sw…...

Android无菜单键,如何触发onCreateOptionsMenu(Menu menu)

文章目录小结问题及解决无法触发onCreateOptionsMenu(Menu menu)修改配置文件解决使用一个按钮来触发其它办法参考小结 现在的Android有三个键&#xff1a; 任务键&#xff0c;Home键&#xff0c;返回键&#xff0c;也就是没有菜单键了&#xff0c;那么如何如何触发onCreateOp…...

“黑洞”竟是外星人的量子计算机?

宇宙中的黑洞可以用作终极量子计算机&#xff0c;我们可以从中探索它们的特征。&#xff08;图片来源&#xff1a;网络&#xff09;我们完全有理由怀疑生命在我们的宇宙中很常见&#xff0c;但是为什么我们从未发现过其他生命存在的迹象&#xff1f;这个问题几乎自现代天文学诞…...

计算机网络入门

一&#xff0c;计算机网络在信息时代中的作用 21世纪的一些重要特征就是数字化&#xff0c;网络化和信息化&#xff0c;它是一个以网络为核心的信息时代。有三类大家很熟悉的网络&#xff0c;即电信网络&#xff0c;有线电视网络和计算机网络。按照最初的服务分工&#xff0c;…...

网络安全-内网DNS劫持-ettercap

网络安全-内网DNS劫持-ettercap 前言 一&#xff0c;我也是初学者记录的笔记 二&#xff0c;可能有错误的地方&#xff0c;请谨慎 三&#xff0c;欢迎各路大神指教 四&#xff0c;任何文章仅作为学习使用 五&#xff0c;学习网络安全知识请勿适用于违法行为 学习网络安全知识请…...

synchronized和Lock的区别

synchronized和lock的区别 synchronized和Lock&#xff0c;我已经通过源码级别的介绍过了&#xff0c;下面我们来总结下他们的区别 区别&#xff1a; 1.synchronized是关键字,Lock是接口&#xff0c;synchronized是JVM层实现&#xff0c;Lock是JDK中JUC包下的实现&#xff1b;…...

SpringBoot 指标监控 Actuator

Spring Boot Actuator为 Micrometer 提供了依赖管理和自动配置&#xff0c;Micrometer是一个支持 众多监控系统 的应用程序指标接口 该功能与&#xff1a;java\jdk\bin 下的 Jconsole 功能雷同 1、pom文件中引入依赖&#xff08;使用的springboot是2.7.2&#xff09; <dep…...

面试浅谈之十大排序算法

面试浅谈之十大排序算法 HELLO&#xff0c;各位博友好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 这里是面试浅谈系列&#xff0c;收录在专栏面试中 &#x1f61c;&#x1f61c;&#x1f61c; 本系列将记录一些阿呆个人整理的面试题 &#x1f3c3;&…...

LeetCode-1250. 检查「好数组」【数论,裴蜀定理】

LeetCode-1250. 检查「好数组」【数论&#xff0c;裴蜀定理】题目描述&#xff1a;解题思路一&#xff1a;裴蜀定理是&#xff1a;a*xb*y1。其中a,b是数组中的数&#xff0c;x,y是任意整数。如果a,b互质那么一定有解。问题即转换为寻找互质的数。解题思路二&#xff1a;简化代码…...

【Linux】NTP时间同步服务与NFS网络文件共享存储服务器(配置、测试)

一、NTP时间同步服务1、NTP介绍NTP服务器【Network Time Protocol&#xff08;NTP&#xff09;】是用来使计算机时间同步化的一种协议&#xff0c;它可以使计机对其服务器或时钟源&#xff08;如石英钟&#xff0c;GPS等等)做同步化&#xff0c;它可以提供高精准度的时间校正&a…...

windows下php连接oracle安装oci8扩展报错(PHP Startup: Unable to load dynamic library ‘oci8_11g‘)

记录一下php7.29安装oci8的艰苦过程&#xff0c;简直就是唐僧西天取经历经九九八十一难。 使用的是phpstudy_pro安装的ph扩展wnmp环境下&#xff1b; 1 、安装oralce Instant Client 首先&#xff0c;安装oci8和pdo_oci扩展依赖的Oracle client。了解到需要连接的Oracle版…...

TensorRT的功能

TensorRT的功能 文章目录TensorRT的功能2.1. C and Python APIs2.2. The Programming Model2.2.2. The Runtime Phase2.3. Plugins2.4. Types and Precision2.5. Quantization2.6. Tensors and Data Formats2.7. Dynamic Shapes2.8. DLA2.9. Updating Weights2.10. trtexec本章…...

433MHz无线通信--模块RXB90

1、接收模块RXB90简介 两个数据输出是联通的。 2、自定义一个编码解码规则 组数据为“0x88 0x03 0xBD 0xB6”。 3、发射模块 如何使用示波器得到捕捉一个周期的图像&#xff1f; 通过date引脚连接示波器CH1&#xff0c;以及示波器探针的接地端接芯片的GND&#xff0c;分…...

Seata源码学习(三)-2PC核心源码解读

Seata源码分析-2PC核心源码解读 2PC提交源码流程 上节课我们分析到了GlobalTransactionalInterceptor全局事务拦截器&#xff0c;一旦执行拦截器&#xff0c;我们就会进入到其中的invoke方法&#xff0c;在这其中会做一些GlobalTransactional注解的判断&#xff0c;如果有注解…...

Translumo实时屏幕翻译工具:5分钟解决你的多语言障碍难题

Translumo实时屏幕翻译工具&#xff1a;5分钟解决你的多语言障碍难题 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是…...

UiBot调用Python插件报错?可能是运行环境惹的祸(附解决方案)

UiBot调用Python插件报错&#xff1f;深度解析环境冲突与5种高阶解决方案 当你在UiBot中调用精心编写的Python插件时&#xff0c;突然弹出的红色报错信息往往让人措手不及。特别是当代码在本地PyCharm中运行完美&#xff0c;却在UiBot中频频报错时&#xff0c;问题很可能出在环…...

工业软件集成:在SolidWorks中嵌入Qwen3-ASR-0.6B实现语音指令操作

工业软件集成&#xff1a;在SolidWorks中嵌入Qwen3-ASR-0.6B实现语音指令操作 1. 引言 想象一下这个场景&#xff1a;你正在用SolidWorks设计一个复杂的装配体&#xff0c;双手在鼠标和键盘之间来回切换&#xff0c;一会儿旋转视图&#xff0c;一会儿调整尺寸&#xff0c;一会…...

开源大模型部署新范式:像素幻梦Streamlit前端+diffusers后端架构解析

开源大模型部署新范式&#xff1a;像素幻梦Streamlit前端diffusers后端架构解析 1. 项目概览 像素幻梦(Pixel Dream Workshop)是一款基于FLUX.1-dev扩散模型的像素艺术生成工具&#xff0c;它重新定义了AI艺术创作的用户体验。与传统AI绘图工具不同&#xff0c;它采用了独特的…...

Thumb-2指令集在Cortex-M3上的5个高效编程技巧(附真实项目代码)

Thumb-2指令集在Cortex-M3上的5个高效编程技巧&#xff08;附真实项目代码&#xff09; 在嵌入式开发领域&#xff0c;Cortex-M3处理器凭借其出色的性能功耗比占据着重要地位。而Thumb-2指令集作为其核心特性之一&#xff0c;通过巧妙混合16位和32位指令&#xff0c;为开发者提…...

C++ STL 容器内存管理机制

C STL容器内存管理探秘 在C开发中&#xff0c;STL&#xff08;标准模板库&#xff09;容器是高效数据处理的基石&#xff0c;其背后的内存管理机制直接影响程序性能与资源利用率。理解容器如何动态分配、释放内存&#xff0c;不仅能避免内存泄漏和碎片化问题&#xff0c;还能优…...

嵌入式系统内存管理技术与实践

嵌入式系统内存管理的工程实践1. 嵌入式内存管理概述嵌入式系统的内存管理直接决定了系统的三个关键特性&#xff1a;稳定性、实时性和功耗表现。与通用计算系统不同&#xff0c;嵌入式环境对内存使用有着更严格的约束条件&#xff0c;这要求工程师必须掌握专业的内存管理技术。…...

VSG序阻抗扫频(电压电流双闭环)、时域下阻抗扫频稳定性分析及建模仿真

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

League Toolkit:重新定义英雄联盟游戏体验的智能辅助工具集

League Toolkit&#xff1a;重新定义英雄联盟游戏体验的智能辅助工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在快节奏的…...

AI 模型部署中的内存瓶颈

AI模型部署中的内存瓶颈&#xff1a;挑战与优化 随着AI技术的快速发展&#xff0c;大型神经网络模型&#xff08;如GPT、ResNet等&#xff09;在各类应用中大放异彩。模型部署过程中面临的内存瓶颈问题却成为制约其广泛应用的关键因素。无论是边缘设备还是云端服务器&#xff…...