POSIX C`警告:变量'tables'设置但未使用`

时间:2014-02-10 22:21:57

标签: c linux posix

我编写了一个代码,一切正常,编译和工作没有问题,当我用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并且已被使用。有什么想法吗?

1 个答案:

答案 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();

编译器将优化分配并转换后者。