當我在Linux上編譯它時,得到format not a string literal and no format arguments
警告。 snprintf顯示了第三個參數的const char*
。定義const char *INTERFACE = "wlan0"
然後將它傳遞給函數有什麼不對?snprintf - 格式不是字符串文字,也沒有格式參數警告
#include <stdio.h>
#include <net/if.h>
#include <string.h>
int main(int argc,char *argv[]){
const char *INTERFACE = "wlan0";
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), INTERFACE);
return 0;
}
我沒有得到任何警告:http://ideone.com/BdSQF2似乎沒問題 – duDE
它是'const char * format',看起來像「%s」 – MYMNeo
你有什麼版本的GCC? (只需運行'gcc -v'即可找到)。 –