<var id="lnpr7"></var>
<cite id="lnpr7"></cite>
<var id="lnpr7"></var>
<var id="lnpr7"><strike id="lnpr7"></strike></var><cite id="lnpr7"><video id="lnpr7"><thead id="lnpr7"></thead></video></cite>
<var id="lnpr7"><strike id="lnpr7"></strike></var>
<menuitem id="lnpr7"></menuitem>
<menuitem id="lnpr7"><strike id="lnpr7"></strike></menuitem><cite id="lnpr7"></cite>
<cite id="lnpr7"><video id="lnpr7"><listing id="lnpr7"></listing></video></cite>
<cite id="lnpr7"><strike id="lnpr7"><thead id="lnpr7"></thead></strike></cite>
<cite id="lnpr7"></cite>
<var id="lnpr7"><strike id="lnpr7"></strike></var><cite id="lnpr7"><video id="lnpr7"><thead id="lnpr7"></thead></video></cite>
<var id="lnpr7"></var>
<menuitem id="lnpr7"></menuitem><menuitem id="lnpr7"><strike id="lnpr7"></strike></menuitem>
<var id="lnpr7"></var>
<var id="lnpr7"></var><var id="lnpr7"><strike id="lnpr7"><progress id="lnpr7"></progress></strike></var>
<cite id="lnpr7"></cite>
<cite id="lnpr7"><strike id="lnpr7"></strike></cite>
<cite id="lnpr7"></cite>
<cite id="lnpr7"></cite>
<var id="lnpr7"><strike id="lnpr7"></strike></var>
<cite id="lnpr7"></cite>
<var id="lnpr7"></var>
<var id="lnpr7"></var>

博客專欄

EEPW首頁 > 博客 > C語言中#和##的區別

C語言中#和##的區別

發布人:電子禪石 時間:2023-04-25 來源:工程師 發布文章
C語言中#和##的區別

.關于#和##
在C語言中宏定義中,#的功能是將其后面的宏參數進行字符串化操作。

#include<stdio.h>
#define Str(s) #s
int main()
{
    printf(Str(HelloWorld));
    return;
}

結果為:

##是連接符,前加##或后加##,將標記作為一個合法的標識符的一部分,不是字符串.多用于多行的宏定義中。

#include<stdio.h>
#define Var(x) var##x
int main()
{
    int Var(1)=1,Var(2)=2,Var(3)=3;//不是字符串 這里是一個變量
    printf("var1=%d\n",var1);
    printf("var2=%d\n",var2);
    printf("var3=%d\n",var3);
    return 0;
}


結果為: 


2.##與typedef、#define的使用

win32圖形庫的代碼:

1 #define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name2 DECLARE_HANDLE(HINSTANCE);

HINSTANCE為句柄的數據類型(句柄:Windows操作系統為各應用程序騰出一些內存儲地址,用來專門登記各應用對象在內存中的地址變化,可理解為:句柄地址(穩定)→記載著對象在內存中的地址→對象在內存中的地址(不穩定)→實際對象)。

宏展開:

1 struct HINSTANCE__ { int unused;};2 typedef struct HINSTANCE__ *HINSTANCE;

其中##的作用為將參數名與__連接。

 參考http://blog.csdn.net/acs713/article/details/6891837

http://blog.chinaunix.net/uid-27666459-id-3772549.html


*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: c

相關推薦

技術專區

關閉
日韩中文字幕精品一区,亚洲综合一级视频,亚洲综合视频在线播放,亚洲视频在线免费