有人最近问我C标准运算符(例如new,delete,sizeof)和
函数(例如tan,free,malloc)之间的区别. “标准”是指编译器套件默认提供的,而不是
用户定义的.以下是我给出的答案,但似乎都不令人满意.
(1)操作符不需要包括任何标题来使用它:例如你可以打电话给新的,不包括任何标题.但是,一个函数(比如free())确实需要包含头文件,强制执行.
(2)运算符在标准头中的某处定义为(即类操作符).功能不是.
你能批评这些答案并让我更好地了解它们之间的区别吗?
运算符是具有固定语法的关键字.可以重载的那些可能在语法上有所不同,但这是在边界内.即使在重载时,new运算符仍然是新的拼写,并且
调用它的语法总是相同的.
函数名称是标识符,几乎可以是任意的.没有语法上的理由你无法取消malloc()和使用
bool my_fancy_alloc(void*& memory,unsigned char size,bool zero_it);
代替. (马克:还有其他原因.就像你的同事的理智一样.)