宏定義字符串的拼接


偶然發現下面形式的代碼,覺得很陌生,先上代碼:

 1 /* Filepaths
 2 */
 3 
 4 #define CMEFS_PH_DIR        "/mmode/cmph/"
 5 ...
 6 #define CMEFS_UIM_DIR       "/nv/item_files/modem/uim/"
 7 
 8 /*
 9 ** EFS table that maps EFS Id to filename
10 */
11 static const cmefs_tbl_s_type cmefs_tbl[] =
12 {
13   { CMEFS_USER_NET_SEL_MODE_PREF_NAM_1, CMEFS_PH_DIR "user_net_sel_mode_nam_1" },
14   { CMEFS_USER_NET_SEL_MODE_PREF_NAM_2, CMEFS_PH_DIR "user_net_sel_mode_nam_2" },
15 ...

 CMEFS_PH_DIR "user_net_sel_mode_nam_1" 這樣的代碼以前沒有遇見過,查閱相關資料,做了以下實驗:

 (1)

1 #include <stdio.h>
2 #define CMEFS_PH_DIR        "/mmode/cmph/"
3 
4 void main()
5 {
6   printf("拼接后的字符串為: %s\n",CMEFS_PH_DIR "user_net_sel_mode_nam_1");
7 }

輸出結果:

(2) 

1 #include <stdio.h>
2 
3 void main()
4 {
5   char *sub_string = "/mmode/cmph/" "user_net_sel_mode_nam_1";
6   printf("拼接后的字符串為: %s\n",sub_string );
7 }

輸出結果與(1)相同。

(3)

1 #include <stdio.h>
2 #define CMEFS_PH_DIR        "/mmode/cmph/"
3 #define SUB_STRING          "user_net_sel_mode_nam_1"
4 
5 void main()
6 {
7   printf("拼接后的字符串為: %s\n",CMEFS_PH_DIR SUB_STRING);
8 }

輸出結果與(1)相同。

 以上都可以定義字符串以及用宏定義拼接相關的字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM