__TIME__ 宏指令包含程序编译的时间。时间用字符串表示,其形式为: 分:秒 __STDC__ 宏指令的意义是编译时定义的。一般来讲,如果__STDC__已经定义,编译器将仅接受不包含任何非标准扩展的标准C/C++代码。如果实现是标准的,则宏__STDC__含有十进制常量1。如果它含有任何其它数,则实现是非标准的。 __cplusplus...
#define是C语言中最常用的宏定义指令之一,用于定义一个宏。它的基本语法为: #define 宏名 替换文本 宏名可以是任意合法的标识符,替换文本可以是任意合法的C代码。当程序中出现宏名时,预处理器会将其替换为相应的文本。 2. #ifdef / #ifndef / #endif 这三个宏定义指令用于条件编译。#ifdef用于检查一个宏是...
(1)宏名一般用大写; (2)使用宏可以提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改; (3)预处理是在编译之前的处理,预处理不做语法检查; (4)宏定义末尾没有分号;//不加; (5)宏定义自然作用域为从定义开始一直到本文件结尾; (6)可以用#undef命令提前终止宏定义的自然作用域; (7...
这也是C语言中最常见的宏定义写法,这样的代码在预处理的时候直接被替换。 在C语言中,还有两种宏定义容易被忽略。 一种是预定义宏,顾名思义,就是别人预先定义好的,拿过来用就行。 常见的比如file line date time 分别表示文件名、行号、日期和时间,主要就是让用户用起来更方便。 还有一种定义宏的方式,是在编...
除此之外,常用的宏还有:__DATE__、__TIME__,分别代表当前的编译日期与时间。如: DBG_PRINTF("Compile Time: %s %s\n", __DATE__, __TIME__); 第二条printf中的##符号是为了处理args不代表任何参数的情况。如: DBG_PRINTF("Hello world"); ...
C语言中常用宏定义 下面是一些比较重要的宏定义,记录一下: assert断言: #define assert(cond) ((cond)?(void)0:_assert(#cond,__FILE__,__LINE__)) void _assert(char*cond,char*filename,long lineno) { printf("assert:%s in file:%s, at line:%d\n",cond,filename,lineno);...
C语言宏定义(常用宏定义) 常用宏定义 数值相关的宏定义 闰年的判断 ,年份可以整除4并且不能整除100,或者可以整除400,则为闰年; #define IS_LEAP_YEAR(y) (((y) % 4) == 0) && (((y) % 100) != 0)) \ || (((y) % 400) == 0))/*判断是否是闰年*/ 1...
这段程序中就是一个预处理器(宏)的简单用法, 直接进行简单的(无脑)替换操作. 带参数的宏 #include <stdio.h> #define printn(n) printf("n=%d\n", n) intmain() { intsum=20+12; printn(sum); return0; } 1. 2. 3. 4. 5. 6. ...
宏定义又称为宏代换、宏替换,简称为宏。是 C 语言中最为常用的三种预处理指令之一。 宏定义指令,是由 # 和关键字 define 组合而成的。 它的作用是文本替换,使用标识符来代替替换列表中的内容。 使用宏定义可以提高程序的通用性、易读性,减少因为输入错误产生的各种问题,同时还便于修改。