因此,在 Unix 系统中,通常预先定义好了宏 __unix__,而 GCC 编译器则会预先定义好了宏 __GNUC__。类似地,微软 Windows 平台上的 Visual C 编译器会自动定义好宏 _WIN32 和宏 _MSC_VER。#ifdef 和 #ifndef 命令 你可以通过 #ifdef 和 #ifndef 命令测试某个宏是否已被定义。它们的语法是:#ifdef标...
类似地,微软 Windows 平台上的 Visual C 编译器会自动定义好宏_WIN32和宏_MSC_VER。 #ifdef 和 #ifndef 命令 你可以通过 #ifdef 和 #ifndef 命令测试某个宏是否已被定义。它们的语法是: #ifdef标识符 #ifndef标识符 这等同于下面的 #if 命令: #if defined 标识符 #if !defined 标识符 如果identifier 不...
1、条件编译介绍 条件编译(conditional compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码。例如,可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源代码的各种不同版本。 条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #
C语言的#if#ifdef#ifndef C语⾔的#if#ifdef#ifndef #if #ifedf #ifndef —般情况下,C语⾔源程序中的每⼀⾏代码.都要参加编译。但有时候出于对程序代码优化的考虑.希望只对其中⼀部分内容进⾏编译.此时就需要在程序中加上条件,让编译器只对满⾜条件的代码进⾏编译,将不满⾜条件的代码舍弃...
#ifdef指令表示如果预处理器已定义了后面的标识符LENGTH_H,则执行#else(如果有)、#endif指令之前的所有指令并编译C代码,如果预处理器未定义标识符LENGTH_H,且有#else指令,则执行#else和#endif指令之间的所有代码 注意:#else可以没有,但#endif必须存在 4.2 #ifndef指令 #ifndef指令和#ifdef指令的逻辑相反,...
#ifndef 用法的一般格式为: #ifndef 宏名 程序段1 #else 程序段2 #endif 与#ifdef 相比,仅仅是将 #ifdef 改为了 #ifndef。它的意思是,如果当前的宏未被定义,则对“程序段1”进行编译,否则对“程序段2”进行编译,这与 #ifdef 的功能正好相反。
C语言的#if #ifdef #ifndef #if #ifedf #ifndef —般情况下,C语言源程序中的每一行代码.都要参加编译。但有时候出于对程序代码优化的考虑.希望只对其中一部分内容进行编译.此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译!
条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #endif 命令结尾。条件编译区域可以有任意数量的 #elif 命令,但最多一个 #else 命令。以 #if 开头的条件编译区域具有下面的格式: #if 表达式1 [组1] [#elif 表达式2 [组2]] ...
#ifndef用法的一般格式为:#ifndef宏名程序段1#else程序段2#endif 与#ifdef 相比,仅仅是将 #ifdef 改为了 #ifndef。它的意思是,如果当前的宏未被定义,则对“程序段1”进行编译,否则对“程序段2”进行编译,这与 #ifdef 的功能正好相反。 三者之间的区别 ...
#ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #endif用于终止#if预处理指令。 代码语言:javascript 复制 #ifdefABC// ... codes while definded ABC#elif(CODE_VERSION>2)// ... codes while CODE_VERSION > 2#else// ... remained cases#endif// #ifdef ABC ...