這兩個代碼段代碼在這裏意味着什麼?奇怪的宏和沒有操作變量的用法?
#define HTTPH(a, b, c, d, e, f, g) char b[] = "*" a ":";
void function(char *p) {
(void)p;
}
這兩個代碼段代碼在這裏意味着什麼?奇怪的宏和沒有操作變量的用法?
#define HTTPH(a, b, c, d, e, f, g) char b[] = "*" a ":";
void function(char *p) {
(void)p;
}
首先是通過宏字符串連接。它類似於:
#define STR3 STR1 STR2
有了這個預處理器將串連STR1 & STR2和地方STR3的使用它。
Example.
第二語法:
void function(char *p)
{
(void)p;
}
手段指針變量p
目前未被使用。未使用的變量很少導致編譯器警告,這樣的結構通常用於擺脫未使用的變量警告。
With (void)p;
指針p
用於一個語句中(實際上它什麼都不做)但它滿足了編譯器該變量在某處使用,因此它不會產生警告。
我已經看到,以避免未使用變量的編譯器警告。 –
@PatrickB .:是的! –
"*" a ":"
是簡單的字符串連接。就像"a" "b" "c"
相當於。
void函數沒有做任何事情,但它可能是其他地方的佔位符。你需要展示更多的上下文才能得到正確的答案。
請不要一次問兩個問題,這些問題顯然不同,並給他們一個正確描述他們的標題。 –