
预处理
文章平均质量分 59
C 语言预处理
tyustli
不抛弃,不放弃
展开
-
【宏定义】——判断一个整数是不是 2 的幂
【代码】【宏定义】——判断一个整数是不是 2 的幂。原创 2023-08-16 21:36:34 · 185 阅读 · 0 评论 -
【宏定义】——为什么使用 do{} while(0) 结构
第二个语句并没有在 if 成立时执行。在if-else 语句中。如果有 if 判断代码。原创 2023-07-31 21:52:23 · 242 阅读 · 0 评论 -
【宏定义】——判断宏的值是否为特定值
用于判断宏的值是否为特定值。原创 2023-07-31 08:05:30 · 2756 阅读 · 0 评论 -
【宏定义】——编译时检查(二)
用于在编译时检查一个条件是否为真,如果条件为假则会编译失败,编译器报错。改宏主要利用了 enum 枚举成员必须是整数的特性。是用于宏参数的连接,则结果为。则宏展开时,两个参数分别为。这两个参数又作为参数传递给。原创 2023-07-30 18:33:07 · 312 阅读 · 0 评论 -
【宏定义】——编译时检查(一)
如果表达式 e 的结果为 0,则得到结构体 struct {int:0;},这是一个匿名的位域结构体,位域宽度为 0。结果 0 或者 1。如果表达式 e 的结果为 0 ,则得到 0 , 如果为非 0 值,则得到 1。如果表达式 e 的结果为 0,则使用 sizeof 运算符计算得到这个匿名结构体。用于在编译时检查一个条件是否为真,如果条件为真则会编译失败,编译器报错。反之如果条件为假,则编译正常,且有返回值,返回 0。如果表达式 e 的结果为 1,则得到结构体。的大小为 0,宏的返回值为 0。原创 2023-07-28 14:19:33 · 310 阅读 · 0 评论 -
【宏定义】——检验条件是否成立,并返回指定的值
宏检验条件是否成立,并返回指定的值。原创 2023-07-30 17:28:15 · 421 阅读 · 0 评论 -
【宏定义】——获取宏的第 N 个参数,多余的参数舍弃
获取宏的第 N 个参数,多余的参数舍弃。原创 2023-07-30 16:58:46 · 294 阅读 · 0 评论 -
【宏定义】——获取可变参数宏的参数数量
_COUNT_ARGS 宏的作用是返回实参的第 22 个参数,实际 __COUNT_ARGS 传递了 25 个参数 ,所以该宏只返回第 22 个参数即。__COUNT_ARGS 宏的作用是返回实参的第 22 个参数,实际 __COUNT_ARGS 传递了 22 个参数 ,所以该宏只返回第 22 个参数即。__COUNT_ARGS 宏的作用是返回实参的第 22 个参数,实际 __COUNT_ARGS 传递了 44 个参数 ,所以该宏只返回第 22 个参数即。如果超过第 22 个的参数,会被 …原创 2023-07-27 22:22:35 · 1405 阅读 · 0 评论 -
【预处理】——#、##、__VA_ARGS__ 和##__VA_ARGS__ 的使用
1、#用来把参数转换成字符#include <stdio.h>#define FUN(X) (printf("%s=%d\n",#X,X)) /* #用来把参数转换成字符 */int test(int argc, char ** argv){ int a = 1; int b = 2; FUN(a); FUN(b); ...原创 2019-01-04 16:58:11 · 2085 阅读 · 1 评论 -
【预处理】——__FILE__、__LINE__、#line、__func__、__DATE__和__TIME__等的用法
C语言中的__FILE__、__LINE__和__DATE__等都在头文件#include<stdio.h>中__LINE__#include<stdio.h>intmain(int argc, char ** argv){ printf("%d ",__LINE__); /*C语言中的 __LINE__ 用以指示本行语句在源文件中的位置信息*/...原创 2018-10-23 22:34:11 · 2250 阅读 · 0 评论 -
【预处理】——预处理器(二)
1那么上面宏代表的就是structfoo;从上面的两个定义看,T1和T2从概念上完全相同,都是指向结构fooT1 a , b;T2 a , b;第一个声明宏展开就是这个语句中a被定义为一个指向结构的指针,而b却被定义为一个结构(而不是指针)。第二个声明则不同,a和b都是指向结构的指针,因为这里T2的行为 完全与一个真实的类型相同。原创 2020-12-27 23:07:47 · 161 阅读 · 1 评论 -
【预处理】——预处理器(一)
预处理器编译一个 C 程序涉及很多步骤。其中第 1 个步骤被称为预处理阶段。 C 预处理器在源代码编译之前对其进行一些文本性质的操作。它的主要任务包括删除注释、插入被 #include 指令包含的文件的内容、定义和替换由 #define 指令定义的符号以及确定代码的部分内容是否应该根据一些条件编译指令进行编译。预定于符号测试代码#include <stdio.h>#include <stdlib.h>#include <string.h>#include &原创 2020-12-25 22:41:18 · 326 阅读 · 0 评论