隐式类型转换我有一个功能:void foo(bool boolParam = true)
C++在Visual Studio 2010
我把它改为:void foo(const char* charParam, bool boolParam = true)
为了避免搜索我刚刚编译的代码希望编译器会给出一个错误(或至少是一个警告),因为函数被错误的参数类型调用,但是代替这个,编译器自动将false转换为NULL
,并编译所有内容而不会出现错误或警告。这种行为是否正确?我知道false和NULL
都是0,但我认为编译器至少应该给出一些警告信息...
呃,它可能应该给你一些警告,但我想这是因为'NULL'在'windows.h'中简单地定义为'0'。好问题,但。 – 2011-02-25 08:29:05
如果将警告级别设置为4(在项目设置中),您应该会收到一些警告。 – 2011-02-25 08:31:25
@Volker:你确定/ W4会对此产生警告吗? – 2011-02-25 08:35:23