听小说的网站哪个好,html教程网站,wordpress主页js不执行,网站开发工作室营业执照预处理阶段任务 预处理指令 条件编译宏 条件编译宏的作用在于根据编译时的条件进行代码的选择性编译#xff0c;从而实现不同环境、不同配置或不同功能的编译版本。 这可以用于实现调试模式和发布模式的切换#xff0c;平台适配#xff0c;以及选择性地编译不同的功能模块等…预处理阶段任务 预处理指令 条件编译宏 条件编译宏的作用在于根据编译时的条件进行代码的选择性编译从而实现不同环境、不同配置或不同功能的编译版本。 这可以用于实现调试模式和发布模式的切换平台适配以及选择性地编译不同的功能模块等。通过合理使用条件编译宏可以提高代码的灵活性、可维护性和可移植性。 1
//#ifdef 和 #ifndef这指令用于判断某个宏是否已经被定义。
#ifdef DEBUG// 定义了 DEBUG 宏对应的代码块
#else// 没有定义 DEBUG 宏对应的代码块
#endif//判断出当前是不是WIN32平台。
#include stdio.hint main()
{
#ifdef _WIN32printf(这是win32平台\n);
#elseprintf(这不是win32平台\n);
#endif // _WIN32
}2
//#if该指令用于在编译时对表达式进行求值根据结果判断是否编译代码块中的内容。
//此处的表达式要求在预处理阶段值是可以被求出的常见的包括宏定义的值、常量、运算表达式等。#if (VALUE 1) // 小括号可以省略不写// 在VALUE为1时执行的代码
#elif (VALUE 2)// 在VALUE为2时执行的代码
#else// 在其他情况下执行的代码
#endif//根据宏 VALUE 的值编译器会根据条件选择性地编译 #if、#elif 或 #else 后面的代码块。
#define VALUE 5
int main()
{int number 5;
#if VALUE 5number 10;
#elif VALUE 5number * 10;
#elsenumber;
#endif printf(number %d\n, number);
}pragma #pragma 是C和C语言中的一个预处理指令用于向编译器发出特定的指示或命令。 //用于防止头文件的重复包含
#pragma once
// 头文件的内容//#pragma pack用于设置结构体的内存对齐方式。#pragma pack 可以设置结构体成员的对齐方式以便在内存中紧凑地存储数据。// 将当前的对齐方式压栈并设置为 n 字节对齐
#pragma pack(push, n)
// 结构体定义和成员
#pragma pack(pop) // 恢复之前的对齐方式//#pragma warning用于控制编译器警告的输出级别。#pragma warning 可以修改编译器输出的警告信息级别。// 禁用指定警告
#pragma warning(disable: warning_number)
// 恢复指定警告到默认级别
#pragma warning(default: warning_number) 实际上各个编译器还支持各种不同的 pragma 指令具体的使用方法和支持的指令可以参考编译器的文档或手册。需要注意的是pragma 指令的具体行为和效果在不同的编译器之间可能有所不同并且使用 pragma 指令可能导致代码的可移植性降低。因此在使用 pragma 指令时应当谨慎并考虑平台和编译器的兼容性。 井号运算符 ‘#’ 在C和C中# 运算符井号运算符用于将宏参数转换为字符串常量。 #include stdio.h
#define STRINGIZE(x) printf(#x value is %d\n, (x))int main()
{int number 666;STRINGIZE(number);return 0;
}输出
number value is 666拼接运算符 ‘##’ 是宏预处理运算符称为连接运算符或拼接运算符。它只能在宏定义中使用用于将两个符号可以是标识符、关键字或其他字符连接在一起形成一个新的标识符。 #include stdio.h
#define NAME(n) yyds##n
#define STRNAME(n) yyds_#n
#define STRINGIZE(x) printf(yyds#x value is %d\n, yyds##x)int main()
{int NAME(1) 100;int NAME(2) 200;int NAME(3) 300;STRINGIZE(1);STRINGIZE(2);STRINGIZE(3);printf(%s\n, STRNAME(Leifeng));printf(%s\n, STRNAME(9527));return 0;
}输出
yyds1 value is 100
yyds2 value is 200
yyds3 value is 300
yyds_Leifeng
yyds_9527详细教程可转
爱编程的大丙