面试题答案
一键面试#ifdef WIN_PLATFORM
#include <windows.h>
#include <stdio.h>
void logMessage() {
printf("This is a log message for Windows platform.\n");
}
#elif defined LINUX_PLATFORM
#include <stdio.h>
void logMessage() {
printf("This is a log message for Linux platform.\n");
}
#else
#error "Unsupported platform"
#endif
int main() {
logMessage();
return 0;
}
上述代码中:
#ifdef WIN_PLATFORM
用于判断是否定义了WIN_PLATFORM
宏,如果定义了,执行相应代码块,这里引入 Windows 相关头文件并定义适合 Windows 平台的日志输出函数。#elif defined LINUX_PLATFORM
用于在WIN_PLATFORM
未定义时,判断是否定义了LINUX_PLATFORM
宏,如果定义了,执行相应代码块,引入 Linux 相关头文件并定义适合 Linux 平台的日志输出函数。#else
部分用于当既没有定义WIN_PLATFORM
也没有定义LINUX_PLATFORM
宏时,给出错误提示,表明不支持该平台。#endif
用于结束条件编译块。在main
函数中调用logMessage
函数输出对应平台的日志信息。