歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> 幫忙看下宏定義

幫忙看下宏定義

日期:2017/2/27 12:10:21   编辑:Linux文化

>>> 此貼的回復 >> __attribute__,__format__和__printf__都是GCC對C語法的擴展。

__attribute__定義函數或變量的屬性,其格式為:

__attribute__(( ))

注意__attribute__後面是雙括號。

__format__定義函數的參數形式與printf, scanf, strftime和strfmon中的哪一個相似, 其格式為:

__format__ (archetype, string-index, first-to-check)

archetype表示參數形式,可以為__printf__, __scanf__, __strftime__或__strfmon__。 string-index表示第幾個參數為格式字符串,first-to-check表示從第幾個參數開始對照格式 字符串檢查,參數索引從1開始。

__printf__表示為printf形式的參數。

合起來,__attribute__(( __format__ (__printf__, fmt, firstva) )) 表示具有 printf形式參數的函數。

這個宏可以這樣用:

int my_print_func(const char* fmt, ...) printfunc(1, 2);

這樣定義函數之後,編譯器會檢查對此函數的調用。


Copyright © Linux教程網 All Rights Reserved