[英]Printing the contents of a file using the #include directive (preprocessor)
[英]Preprocessor Directive “Using”
從我以前學習C的知識中,我知道像#include
, #include
#define
這樣的預處理器指令不是語句,這就是名稱所暗示的原因,它是程序在編譯之前的過程,因此不需要我們添加一個;
在它的結尾。
在C ++中,它向我介紹了一個正在using
的新指令,但是為什么該指令附加分號? 我以為就像前一個指令我學到的不是語句嗎?
using
不是預處理程序指令。 它由編譯器適當地查看和分析。
你經常不放一個事實;
#define
宏的末尾是因為預處理器將它們作為“簡單”文本替換來處理,例如:
#define SOMETHING "abcd";
...
if (strcmp(thing, SOMETHING) == 0) { ... }
...
將是編譯器錯誤,因為編譯器將看到:
if (strcmp(thing, "abcd";) == 0) { ... }
// ^ invalid here
可以認為using
是一個聲明,例如typedef
。
並且您可以要求編譯器輸出預處理結果,例如使用g++ -C -E
但是沒有簡單的方法要求編譯器輸出using
的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.