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   惜时与缘  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统
 
点击右上角即可分享
微信分享提示