如果在Windows上编译程序,则可以在程序的开始加上#define WINDOWS,这样就编译命令行 #define MYTYPE long;如果在这组条件编译命令前曾出现命令行#define WINDOWS 0,则预编译后程序中的MYTYPE都用float代替。这样,源程序可以不必作任何修改就可以用于不同类型的计算机系统。 2. 包含程序功能模块 例如,在程序首部定义...
#ifdefined(_WIN32) || defined(_WIN64)HINSTANCE dll_handle_for_win;/*当操作系统为 windows 类型时,使用函数 LoadLibrary() 加载动态链接库*/#elsevoid*dll_handle_for_unix_or_linux;char*error_statement;/*当操作系统为 unix 或 linux 类型时,使用函数 dlopen() 加载动态链接库*/#endifinterror_code;...
#ifdef _WIN32 #define OS_WINDOWS #endif 使用#ifdef和#endif指令在代码中添加版本识别: 代码语言:c 复制 #ifdef OS_WINDOWS // Windows版本识别代码 #else // 非Windows版本识别代码 #endif 通过这种方式,可以在不同的操作系统中实现不同的代码逻辑。例如,在Windows操作系统中,可以编写以下代码: 代码语言:c ...
其中#else部分也可以没有,即: #ifdef 程序段1 #denif &3、#160; 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台...
#ifdef 的用法 #ifdef 用法的一般格式为: #ifdef 宏名 程序段1 #else 程序段2 #endif 它的意思是,如果当前的宏已被定义过,则对“程序段1”进行编译,否则对“程序段2”进行编译。 也可以省略 #else: #ifdef 宏名 程序段 #endif VS/VC 有两种编译模式,Debug 和 Release。在学习过程中,我们通常使用 Debug...
因此,在 Unix 系统中,通常预先定义好了宏 __unix__,而 GCC 编译器则会预先定义好了宏 __GNUC__。类似地,微软 Windows 平台上的 Visual C 编译器会自动定义好宏 _WIN32 和宏 _MSC_VER。 #ifdef 和 #ifndef 命令 你可以通过 #ifdef 和 #ifndef 命令测试某个宏是否已被定义。它们的语法是: ...
#ifdef 程序段1 #denif 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的...
其中#else部分也可以没有,即: #ifdef 程序段1 #endif 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在...
#ifdef 程序段1 #denif 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作...
#ifdef 程序段1 #denif 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的...