C++ “内置”和“内置”的区别是什么;“无效”;及;“无效”;从「;typedef void void“;?
我偶然发现以下问题:C++ “内置”和“内置”的区别是什么;“无效”;及;“无效”;从「;typedef void void“;?,c++,typedef,void,C++,Typedef,Void,我偶然发现以下问题: typedef void VOID; class Cls1 { public: VOID Clear(VOID); }; 并且编译器(g++4.6.1)报告了 错误:“匿名”的类型不完整 错误:“无效使用'VOID{aka VOID}” “void”与“void”不同有什么特殊原因吗?好的,clang编译器会给出一个可读性更高的错误: test.cpp:14:20:错误:使用typedef定义的空参数列表 C++中不允许使用“空洞” 无效清除(无效) 没什么不同 <
typedef void VOID;
class Cls1
{
public:
VOID Clear(VOID);
};
并且编译器(g++4.6.1)报告了
错误:“匿名”的类型不完整
错误:“无效使用'VOID{aka VOID}”
“void”与“void”不同有什么特殊原因吗?好的,clang编译器会给出一个可读性更高的错误: test.cpp:14:20:错误:使用typedef定义的空参数列表 C++中不允许使用“空洞” 无效清除(无效)
没什么不同
< C++空参数列表中的P>是空的,不是“空”。我更喜欢显式地添加“空”来作为空参数列表,如C空参数列表中没有“空隙”假设您可以通过任意参数。@ XIS19:您需要决定是否编写C或C++代码。在C++中,空参数列表是idiomatic@xis19-好的。薇欧薇,我喜欢用一开始的“$$”来命名所有的C++变量,因为这是Perl中所做的。@ XIS19,C没有成员函数,在C函数中,成员函数没有意义。在C++中,代码> f(空)>被认为是讨厌的,但对于C兼容性是容忍的。用typedef做同样的事情是非常讨厌的,甚至是不允许的代码>。用typedef声明空参数列表是不标准的。这个问题我见过很多次。在问问题之前先试试谷歌。