在"C的完整参考"一书中,提到char默认情况下是无符号的.
但我试图用GCC和Visual Studio验证这一点.它默认签名.
哪一个是正确的?
想象一下,我有这个C函数(以及头文件中的相应原型)
void clearstring(const char *data) {
char *dst = (char *)data;
*dst = 0;
}
Run Code Online (Sandbox Code Playgroud)
有未定义行为在上面的代码,铸造const走,或者是它只是一个非常不好的编程习惯?
假设没有使用const限定对象
char name[] = "pmg";
clearstring(name);
Run Code Online (Sandbox Code Playgroud)