我编写了一个代码,一切正常,编译和工作没有问题,当我用GCC编译它时4.7.2开关-Wall
我得到以下警告:
warning: variable ‘tables’ set but not used [-Wunused-but-set-variable]
我知道这不是问题,但为什么会出现?看起来不合逻辑:
const unsigned char *tables;
char *loc = setlocale(LC_ALL, 0);
setlocale(LC_ALL, loc);
tables = pcre_maketables();
我的变量是SET并且已被使用。有什么想法吗?
答案 0 :(得分:1)
从编译器的角度来看,:
之间没有行为差异const unsigned char *tables;
char *loc = setlocale(LC_ALL, 0);
setlocale(LC_ALL, loc);
tables = pcre_maketables();
和
char *loc = setlocale(LC_ALL, 0);
setlocale(LC_ALL, loc);
pcre_maketables();
编译器将优化分配并转换后者。