C/C++中的运算符与函数

PKG*_*PKG 11 c++

最近有人问我C++标准运算符(例如new,delete,sizeof)和函数(例如tan,free,malloc)之间的区别."标准"是指编译器套件默认提供的,而不是用户定义的.以下是我给出的答案,但似乎都不令人满意.

(1)运营商不需要包含任何标头来使用它:例如,您可以拨打新电话而不包括任何标题.但是,函数(比如free())确实需要包含头文件,强制执行.

(2)运算符在标准头中的某处定义为(即类操作符).功能不是.

你能批评这些答案并让我更好地了解它们之间的区别吗?

sbi*_*sbi 12

运算符是具有固定语法的关键字.可以重载的那些可能在语法上有所不同,但这是在边界内.该new运营商仍拼写new,甚至超载时并调用它的语法总是一样的.

函数名称是标识符,几乎可以是任意的.没有你无法消除malloc()和使用的语法原因

bool my_fancy_alloc(void*& memory, unsigned char size, bool zero_it);
Run Code Online (Sandbox Code Playgroud)

代替.(马克:有其他原因,虽然喜欢你的同工的理智.)


Siv*_*ash 7

一个运算符被编译器编译成一系列指令。

当代码调用一个函数时,它必须跳转到一个单独的代码段。