我们知道 C 和 C++ 在许多方面非常相似。C++ 增加了面向对象的特性,但大多数 C 程序在 C++ 中也能正确运行。这里我们将看到一个与函数调用相关的程序,它可以用 C 编写并运行,但在 C++ 中却无法运行。示例 在线演示`#include ` `void myFunction() { printf("Function called"); } int main() { myFunction(); myFunction(2); }`输出Function called Function called这个程序在 C 中运行并生成输出,但如果我们尝试在 C++ 中编译它,则会返回错误…… 阅读更多
在本节中,我们将了解 C 中的字符串化运算符 (#) 和令牌粘贴运算符 (##)。字符串化运算符是一个预处理器运算符。它向编译器发送命令,将令牌转换为字符串。我们在这个宏定义中使用这个运算符。使用字符串化运算符,我们可以将一些文本转换为字符串,而无需使用任何引号。示例 在线演示`#include ` `#define STR_PRINT(x) #x` `main() { printf(STR_PRINT(This is a string without double quotes)); }`输出This is a string without double quotes令牌粘贴运算符是一个预处理器运算符。它向编译器发送命令,将两个令牌连接成一个字符串。我们…… 阅读更多
这里我们将看到如何编写一个包含两个函数的代码,一个函数在 main 函数之前执行,另一个函数在 main 函数之后执行。这些特性用于在执行 main 之前执行一些启动任务,并在执行 main 之后执行一些清理任务。要执行此任务,我们必须为这两个函数设置属性。当属性是构造函数属性时,它将在 main() 之前执行,而当属性是析构函数类型时,它将在 main() 之后执行。我们使用 GCC 函数。该函数是 __attribute__()。…… 阅读更多