进行C函数的预编译,通常使用C语言编译器自带的预处理器。以GCC为例,预处理器是GCC的一部分,但也可以单独使用。步骤如下: 编写源代码:编写包含C函数的源代码文件,例如main.c。 使用预处理器:使用GCC的预处理器cpp对源代码进行预处理。命令格式如下: bash...
就是起到两边符号的粘合作用,接下来我们就来实现一些有趣的宏 我们就以求最大值这个函数为例,当我们要找出两个整型数据的最大值时,我们需要一个函数,当我们要找出两个浮点型数据的最大值时,又需要
它的形式有点类似于函数,前面就相当于函数名,括号中就是宏的参数,后面是这个宏的计算方式,比如使用SQUARE(5),那么预处理后,就会把这条语句转化成5*5 其中SQUARE和第一个小括号要紧紧贴在一起,如果两者之间有任何空⽩存在,那么(x)就会成为后面的一部分,就会出错 那么我们上面写的...
- 作用:这是一个因编译器而异的指令,用于向编译器提供特定的信息或指示编译器执行某些特定的操作。例如:- #pragma warning(disable:4996) :在Visual C++ 编译器中,用于禁用 C4996 这个警告。这个警告通常是因为使用了一些被认为不安全的函数(如 scanf 等)而产生的。- #pragma once :是一种防止头文件...
// 常量定义#define MAX_LENGTH 100// 通用标识,日志输出宏#define SLog printf// 预编译宏#define _DEBUG 函数宏:带参数的宏。利用宏可以提高代码的运行效率: 子程序的调用需要压栈出栈, 这一过程如果过于频繁会耗费掉大量的CPU运算资源。所以一些代码量小但运行频繁的代码如果采用带参数宏来实现会提高代码的运...
#error 强制停止编译,调试时给出错误信息 main:是一个函数,每一个c程序有且只有一个main函数,main是整个c程序的入口,由系统调用的 int argc, char *argv[] ::main函数的两个参数,argc是整形,argv是指针数组,agrc命令行参数个数,argv保存每个命令行参数的字符串首地址,这两个参数由系统传递 ...
条件编译 #if、#ifndef等,主要是进行预编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。 布局控制 #pragma,这也是我们应用与处理的一个重要部分,主要功能是为编译程序提出非常规的控制流信息。 宏替换 #define,这是最常用的用法,它可以定义符号常量、函数功能、重新命名、字...
C语言的预编译(预处理)#define 二、#define 定义标识符 三、#define 定义宏 四、#define 替换规则: 五、#和## 两个符号(少见) 六、宏和函数的对比 七、#undef 一、预定义符号 预定义符号是系统本身定义的: FILE进行编译的源文件的位置 LINE文件当前的行号...
1)无参数宏定义 #define 宏名 值 2)取消宏定义 #undef 宏名 3)有参数宏定义 #define TEST(a, b) (a) * (b) 2,条件编译 例:防止头文件重复包含 #ifndef _MYSTRLEN_H #define _MYSTRLEN_H //函数声明#endif 3,日志打印 4,声明与定义的区别 ...