5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神

C语言在预处理的时候都做了什么呢?#define #include #if你真的会用吗?

给你总结了以下常遇到的几个问题,本质理解了如下问题你将提升一个层次。


10.1 这些机巧的预处理宏: #defifine begin { #defifine end } 你觉得怎么样?

10.2 怎么写一个一般用途的宏交换两个值?

10.3 书写多语句宏的最好方法是什么?

10.4 我第一次把一个程序分成多个源文件, 我不知道该把什么放到 .c

文件, 把什么放到 .h 文件。(“.h” 到底是什么意思?)

10.5 一个头文件可以包含另一头文件吗?

10.6 #include <> 和 #include "" 有什么区别?

10.7 完整的头文件搜索规则是怎样的?

10.8 我在文件的第一个声明就遇到奇怪的语法错误, 但是看上去没什么问题。

10.9 我包含了我使用的库函数的正确头文件, 可是连接器还是说它没有定义。

10.10 我在编译一个程序, 看起来我好像缺少需要的一个或多个头文件。谁能发给我一份?

10.11 我怎样构造比较字符串的 #if 预处理表达式?

10.12 sizeof 操作符可以用于 #if 预编译指令中吗?

10.13 我可以在 #include 行里使用 #ifdef 来定义两个不同的东西吗?

10.14 对 typdef 的类型定义有没有类似 #ifdef的东西?

10.15 我如何用 #if 表达式来判断机器是高字节在前还是低字节在前?

10.16 我得到了一些代码, 里边有太多的 #ifdef。我不想使用预处理器

把所有的 #include 和 #ifdef 都扩展开, 有什么办法只保留一种条件的代码呢?

10.17 如何列出所有的预定义标识符?

10.18 我有些旧代码, 试图用这样的宏来构造标识符 #defifine Paste(a, b)a/**/b 但是现在不行了。

10.19 为什么宏 #defifine TRACE(n) printf("TRACE: %d\\n", n) 报出警

告 “用字符串常量代替宏”?它似乎应该把 TRACE(count); 扩展为 printf("TRACE: %d\\count", count);

10.20 使用 # 操作符时, 我在字符串常量内使用宏参数有问题。

10.21 我想用预处理做某件事情, 但却不知道如何下手。

10.22 怎样写参数个数可变的宏?


本人近期会陆续上传这些资料和视频教程,可以关注一下一起交流:C C++ Java python linux ARM 嵌入式 物联网。


5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神


5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神


5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神


5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神


5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神


5年程序员精髓总结—C语言预处理做了什么能答如下问题你就是大神


分享到:


相關文章: