酷!學園
2010-03-18 04:10 *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?

請輸入帳號, 密碼以及預計登入時間
新聞:
 
   首頁 | Study-Area | 鳥園 | 鳥哥的Linux私房菜   說明 搜尋 日曆 登入 註冊  
頁: [1]
  列印  
作者 主題: #define PRINT(fmt,arg...)請問是甚麼意思  (閱讀 529 次)
0 會員 以及 1 訪客 正在閱讀本篇主題.
linuxxunil
可愛的小學生
*
文章: 1


檢視個人資料
« 於: 2010-02-09 10:49 »

請問各位大大下面的語法是怎麼意思

/* --- test.h --- */

#define PRINTF(fmt,arg...)                       \
do {                                                     \
    printf("%s", ## arg );                          \
} while ( 0 )

/* --- test.c --- */
main()
{
     PRINTF("TESTTTTT");
}

Q1:我知道PRINT(fmt,...),但PRINT(fmt,arg...)是甚麼意思??
Q2:printf("%s", ##arg); // ## 這又是甚麼意思??
## arg 與 arg ##有甚麼差別呢?
已記錄
elleryq
區域板主
鑽研的研究生
*****
會員性別: 男
文章: 786



檢視個人資料 個人網站
« 回覆文章 #1 於: 2010-02-23 09:47 »


## 是串起來的意思

如果你用 gcc 的話,可以用 gcc -E 輸出替換巨集後的結果來看,會比較容易明白。
已記錄

lan your work, then work your plan.
我的首頁:http://blog.roodo.com/thinkingmore/
351899by http://counter.li.org
頁: [1]
  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
本頁花了 0.031 秒,以及 18 次的資料庫查詢。