转载文章:
https://blog.youkuaiyun.com/u011350258/article/details/119140960
https://blog.youkuaiyun.com/qq_55439426/article/details/122690319(详细)
https://blog.youkuaiyun.com/wangtingyao1990/article/details/115631437
文章一,二可解决问题:
- 宏定义
包括define和函数,typedef,const,enum的使用 - 条件编译
- 特殊的预定宏
- 文件包含
拓展:
- 关于带参数的宏定义与特殊的预定宏 的具体应用:使用__FILE__只打印文件名。(参考文章三)
- 问题:直接使用__FILE__打印文件名,发现会将文件所在的目录也打印出来。如只想打印
file.c
,但__FILE__会打印出完整的/root/../../file.c
显得非常臃肿 - 方法:通过带参数的宏定义以及strrchr(const char *str, int c)函数(参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置),从而使得只输出文件名
(具体看参考文章三)