XiShiYuYuan's Blogs  
其实,我只会打游戏。。。

预处理

#include		#define		都属于预处理操作,两者都不是关键字

#include		包含头文件

#define		    宏,是直接替换,不进行语法检查



#define	宏名	宏体	(一般为了保险起见,尽量加个括号)    

#define	ABC	(5+3)

#define	ABC(x)	(5+(x))	(宏函数,参数x也尽量加个括号)

条件编译:根据开关量来控制哪些区域的代码编译与否

#ifdef

#else

#endif

预定义宏(系统宏)

__FUNCTION__:函数名

__LINE__:行号

__FILE__:文件名

使用gcc命令加-D参数时: gcc -DABC 相当于: #define ABC 预处理之前,通过编译器人为增加的宏名

宏展开下的#、##

#(字符串化)

##(连接符号)
#define ABC(x)	#x							
printf(ABC(abc\n)) ---> 	printf("abc\n") 

#define ABC(x)	day##x					
printf("the day is %d\n", ABC(1)) ---> printf("the day is %d\n", day1)

链接

链接实际上就是把很多 .o文件融合连接在一起生成可执行程序

常见错误

预处理错误

#include "name"		//在当前目录下寻找名字,自定义的头文件,#include "abc.h"

#include <name>		//在系统的环境变量中寻找名字,系统库的

一般错误都会是:not find

解决方法:gcc -I跟查找头文件的目录 gcc -I./inc -o xxx xxx.c

也可以在:#include "name"处填写为:#include "./inc/abc.h"

posted on 2024-07-09 15:22  惜时与缘  阅读(31)  评论(0)    收藏  举报