C++ #和##的區別
##是字串連線
#是字符串化的意思,把#後面的引數轉換成一個字串
例如:
#define paster( n ) printf( "token " #n" = %d\n ", token##n )
所以paster(9);就是相當於 printf("token 9 = %d\n",token9);
再如:
#include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { printf("%s\n",h(f(1,2))); printf("%s\n",g(f(1,2))); return 0; }
執行結果:
12 //h(f(1, 2)) -> h(12) -> g(12) -> "12"
f(1,2) //g(f(1, 2)) -> "f(1, 2)"
相關推薦
C#中&和&&,|和||區別
.com blank img cnblogs png ref bsp 筆記 區別 當兩者都為邏輯運算符時。 其實沒什麽差別。 &&和||當已經確定結果時,不會對第二個操作數求值。也不知道什麽情況會用到這個差別。做個筆記好了。 http://blog.cs
【轉】Visual C++ 和 C++ 有什麽區別?
業界 流行 編譯器 gtk+ 語言 開發 多種實現 廠商 計算 有位同學問我“Visual C++和C++有什麽區別?”,這的確是初學者會感到困惑的問題,比較常見。除此之外,還有“先學C++好,還是先學Visual C++好?”,都屬於同樣的概念不明的問題,就比
.NET、C#和ASP.NET三才之間的區別(轉)
編程 tail 基於web 發現 我認 ava 微軟 框架 framwork 經常有同學會在.NET、C#和ASP.NET這三者之間區別不清楚,到底它們之間有什麽聯系呢?在這裏我給大家歸納如下: 1、.NET是一個平臺,一個抽象的平臺的概念。
ctrl+c 和 ctrl+z 的區別
狀態 文件 沒有 shel 任務 但是 重新啟動 簡單的 例如 ctrl+c 和 ctrl+z 的區別 ctrl+c和ctrl+z都是中斷命令,但是他們的作用卻不一樣. ctrl+c是強制中斷程序的執行, 而ctrl+z的是將任務中斷,但是此任務並沒有結束,他仍然在進程中他
C#中DBNull.Value和Null的用法和區別
span 不存在 sdn null art beautiful 插入 類型 實例化 DBNull.Value,, 是適用於向數據庫的表中插入空值。而 null,是指在程序中表示空引用。 或者對象為空。就是沒有實例化。 row[column]的值為DBNull.Value的話
C#有幾個版本?C#和.net版本有什麽區別?C#和.net對應版本?
3.5 vs2012 初始化 重載 中新 對象初始化 初始 擴展 windows C#1.0 1.1-->VS2003-->.NET 1.0 1.1-->委托 事件 屬性 AttributeC#2.0-->VS2005-->.NET 2.0--
C和C++結構體的區別
mage contain 裏的 clas 存在 prot 使用 構造函數 lai C的結構體內不允許有函數存在,C++允許有內部成員函數,且允許該函數是虛函數。所以C的結構體是沒有構造函數、析構函數、和this指針的。 C的結構體對內部成員變量的訪問權限只能是public
DotNET、C#和ASP.NET三才之間的區別
關系 .net ren net all pos details div dot Reference 1. DotNET、C#和ASP.NET三才之間的區別 2. ASP.NET、.NET和C#的關系是怎樣的?DotNET、C#和ASP.NET三才之間的區別
C++和java的區別和聯系
討論 重要 優勢 net 類型轉換 總結 沒有 中間件 釋放 今晚,數院的一個兄弟借我Java課本,順便問了一句“Java和C++到底有啥區別啊”。一下子有點問蒙了,“啊額.....運行平臺不同....” "一個在高層,一個在底層...." "執行效率不同......
淺談JS中的!=、== 、!==、===的用法和區別 JS中Null與Undefined的區別 讀取XML文件 獲取路徑的方式 C#中Cookie,Session,Application的用法與區別? c#反射 抽象工廠
main 收集 data- 時間設置 oba ase pdo 簡單工廠模式 1.0 var num = 1; var str = ‘1‘; var test = 1; test == num //true 相同類型 相同值 te
Java和C++的區別
必須 java 增強 然而 開發 idt pac 結合 面向對象的語言 1.指針 JAVA語言讓編程者無法找到指針來直接訪問內存,並且增添了自動的內存管理功能,從而有效地防止了c/c++語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是
從電梯問題,看c和c++之間的區別(有點懂了)錯覺錯覺
命令 上下 能夠 current 表現 靈活 沒有 c++ 16px 磕磕碰碰的也相繼用c和c++構造了不少的電梯了。雖然對自我的表現不滿意,但是總體來說還是有一定的收獲的,對於c和c++之間的區別感覺也摸到了一點點門道了。。。 用c語言構造電梯的步驟: 第一步: 分析這個
c++和java區別之彩38平臺出售
substr 高效率 ++ 簡單的 語言 區分 substring 構建 字符串拼接 從概念上講,java字符串就是Unicode字符序列。彩38平臺出售(企 娥:217 1793 408) 1,提取子串 String類提取子串的方法是substring方法
C和C++的區別
constexpr rtti 不同 編譯 move val 運行時 編譯器 c++ 1)、標準:分別隸屬於兩個不同的標準委員會。C以C99標準為主流,C11已經發布;C++以C++98/03為主流,C++11/14也日趨流行。 2)、語言本身: 1、C++是面向對象語言,C
【分析】淺談C#中Control的Invoke與BeginInvoke在主副線程中的執行順序和區別(SamWang)
info start result 初步 總結 inter blank rap 傳遞 今天無意中看到有關Invoke和BeginInvoke的一些資料,不太清楚它們之間的區別。所以花了點時間研究了下。 據msdn中介紹,它們最大的區別就是BeginInvoke屬於
.c和.h檔案的區別
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
python和C的區別
python和C的區別 python是指令碼語言,不需要編譯 C需要編譯,速度上,C更快 python是動態語言,不需要預先定義變數 C使用變數前需要定義,比較嚴謹 list和陣列的區別: list
.NET、C#和ASP.NET、ASP.NET MVC四者之間的區別
核心 框架類 二進制 的區別 net跨平臺 for 解釋 一個 net開發 什麽是.NET? .NET是微軟公司下的一個開發平臺,.NET核心就是.NET Framwork(.NET框架)是.NET程序開發和運行的環境,在這個平臺下可以用不同的語言進行開發,因為.NET是跨
C++和java多型的區別
C++和java多型的區別 C++中,如果父類中的函式前邊標有virtual,才顯現出多型。 如果父類func是virtual的,則 Super *p =new Sub(); p->func(); // 呼叫子類的func 如果不是virtual的,p->func將呼
C和C++的聯絡與區別
面向過程的思路:分析解決問題所需的步驟,用函式把這些步驟依次實現。 面向物件的思路:把構成問題的事務分解為各個物件,建立物件的目的,不是完成一個步驟,而是描述某個事務在解決整個問題步驟中的行為。 從上述描述可以看出,其實面向物件和麵向過程是兩種思考解決問題的方式,其差異主要在於思考的角度。