[英]Error With c Macro expansion
嗨,請找到以下簡單的宏代碼
#include <iostream>
#define INCL #include
INCL <stdlib.h>
int main()
{
std::cout << "Hello, world\n" << std::endl ;
return 0;
}
當我編譯代碼時,它將引發錯誤:程序中出現流浪“#”
請幫忙。
謝謝
預處理器宏無法創建其他預處理器宏。 您在這方面很不走運。
但是,您可以使用宏作為include參數:
#define FOO(x) "/usr/lib/" #x
#include FOO(mylib.h)
C ++構建包括以下階段:
關鍵是您嘗試使用預處理器(第1階段)對其本身進行預處理,這將無法正常工作。 宏只能用於為編譯器生成代碼。 您不能將預處理器指令包裝到預處理器宏中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.