条件编译:
在编译一个程序的时候我们如果要将一条(一组)语句编译或放弃是很方便的因为我们有条件编译
比如调试性的代码,删除可惜,保留又碍事,我们就可以选择条件编译
常见的条件编译语句:
1.
#if 常量表达式
//……
#endif
//常量表达式由处理器求值,因为变量在运行事才会创建,而这些条件编译在预处理阶段
2.多分支的条件编译
#if 常量表达式
//……
#elif 常量表达式
//……
#else
//……
#endif
3.判断是否被定义
#if defined(symbol)
#ifdef symbol
#if !defined(symbol)
#ifdef symbol
4.嵌套指令
#if defined(OS_UNIX)
#ifdef OPTION1
//……
#endif
#ifdef OPTION2
//……
#endif
#endif
头文件被包含的方式:
- #include<stdio.h>:一般用于库文件,直接去库目录下查找
Windows:C:\program Files(x86)\Microsoft Visual Studio 9.0\vc\include
Linux:\user\include
- #include"filename":一般用于自定义的文件,先去当前用户的工程目录下去找,找不到再去库目录下去找。
注:" "也可用于库文件,但是查询的效率比较低,也不易区分库文件和本地文件
问:头文件中的 ifndef/define/endif 干什么用?
答:防止头文件的重复引入
其他预处理指令
1.#error
2.#program
#program warning (disable:4996)
3.line
……
main()函数的参数解析
1.main()函数的原型:
int main(int argc,char *argv[],char *envp[])
2.参数分析
1)argc:整型变量,标识命令行参数的个数
2)argv:字符指针数组,指向一个字符串,这个字符串就是命令行参数的每一个参数
3)envp:字符指针数组,数组的每一个元素是一个指向一个环境变量的字符指针。
本文介绍了C语言中条件编译的概念,包括常量表达式、多分支判断、定义检测和嵌套指令。同时,讨论了头文件的包含方式,如标准库文件的#include<stdio.h>与自定义文件的#include"filename",并解释了#ifndef/define/endif防止头文件重复引入的作用。最后,简要概述了main()函数的参数解析,包括argc、argv和envp的含义。
3745

被折叠的 条评论
为什么被折叠?



