gpt4 book ai didi

c++ - 我怎样才能让 g++ 打印关于函数参数类型转换的警告?

转载 作者:行者123 更新时间:2023-11-30 04:24:00 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Can I make GCC warn on passing too-wide types to functions?

当我将有符号整数传递给采用无符号整数的函数时,有没有办法让 gcc 或 g++ 产生警告?

例如:

int main(){
char buf[8];
int i;
for(i=0;i<6;i++)
buf[i] = 'a';
buf[6]='\0';
strcat(buf, " ");
strncat(buf, "happystacksmashingstring",-1 );
return 0;

}

会导致堆栈粉碎,因为 strncat 将 size_t 作为其第三个参数,通常是 unsigned int。然而,命令:

g++ -Wall -Wextra -Werror -pedantic -W -Weffc++ -Wconversion test.c

它包含我所知道的每个警告标志,在编译时不会产生任何错误或警告,并且在运行时会破坏堆栈。

gcc -Wall -Wextra -Werror -pedantic -W -Wconversion test.c

相反地产生关于隐式转换的错误。为什么 -Wconversion 标志不能与 g++ 一起正常工作?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com