当我向只接受无符号整数的函数提供有符号整数时,是否有一种方法可以使GCC警告我?
Is there a way to make GCC alert me when I provide a signed integer to function that accepts only unsigned one?
这段代码在使用g++
编译时没有任何警告:
unsigned int myFunc(unsigned int integer) {
return integer;
}
int main() {
int x = -1;
std::cout << myFunc(x) << std::endl;
}
编译正常,但结果是错误的:4294967295
。GCC是否有任何编译器-W*
选项?
是,-Wsign-conversion
请注意,-Wconversion
不会对c++代码启用此警告,尽管它可以对C代码启用此警告。
有一个小小的警告,我可能应该概述一下,因为它可能有点棘手,很容易混淆。
当编译C
代码时,-Wconversion
通常是足够的,因为它会自动触发几个其他标志。
当编译C++
代码时,-Wconversion
不会触发与C
中gcc
完全相同的标志,因此您应该使用-Wsign-conversion -Wconversion
链接到文档
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 有没有一种方法可以在编译时获得作用域类名
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 有没有一种方法可以捕获进程中的堆栈溢出?C++Linux
- 我想直接在结构中插入,但没有一种方法可以正确避免填充问题
- 类中一种方法的部分专用化
- 只需要知道我在c ++中打印模式的方式是否有效,或者有另一种方法可以有效地做到这一点
- 有没有一种方法可以忽略Qt c++中的文件名大小写敏感性?
- 有没有一种方法可以使用图形在C++中逐个字母地打印控制台中的文本
- 有没有一种方法可以将数据从javascript发送到exe文件
- 有没有一种方法可以从函数中返回一个新对象或对现有对象的引用
- 在C++中,有没有一种方法可以让我在不传递参数的情况下拥有一个函数
- 有没有一种方法可以使用SFINAE来检测一个类型是否实现了给定的抽象基类
- 有没有一种方法可以使用typedef中的参数名称
- C++中有没有一种方法可以通过指定列表中的每个成员变量来构造对象