程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> 宏定義printf中#的使用

宏定義printf中#的使用

編輯:關於C

#進行宏字符串連接,在宏中把參數解釋為字符串,不可以在語句中直接使用。在宏定義中

printf("%s;/n", #S) 會被解釋為

printf("%s;/n", "S")

例如下面的代碼


#define TRACE(S) (printf("%s\n", #S), S) /*注意用逗號而不是分號*/ 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
int main() 

    int a=5; 
    int b=TRACE(a); 
    const char *str="hello"; 
    char des[50]; 
    strcpy(des,TRACE(str)); 
    puts(des); 
    system("pause"); 
    return 0; 

 

同時宏定義又是一個逗號表達式 ,所以拷貝到des裡面的值為後面S也就是str的值。

注意:

int a=printf("%s;\n", "S"),a等於printf的返回值,也就是printf打印的字符個數。

 摘自   何昊專欄 程序員面試500問

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved