保留字与标准标识符,如何看待差异

时间:2017-11-25 16:06:54

标签: c

所以我对编程完全不熟悉。我目前正在学习计算机科学,刚刚阅读了我的编程书的前200页,但有一件事我似乎无法看到书中没有明确指出的区别和保留词 i> vs 标准标识符 - 我如何从代码中看到它是一个还是其他。

我知道保留的单词是一些无法更改的,而标准的标识符可以(虽然根据我的书不推荐)。问题是我的书说保留字总是纯粹的小写,如

(int, void, double, return)    

对于像

这样的标准标识符来说,它似乎是一样的
(printf, scanf)

所以我怎么知道它是什么,或者我是否必须学习ANSI C中的所有保留字,这是我们正在尝试学习的当前语言(或者我可能使用的任何未来语言)知道什么时候到了吗?

1 个答案:

答案 0 :(得分:0)

保留字是语言语法的一部分。没有int的C不是C,而是其他内容。它们内置于语言中,并且不能也不能根据此特定语言在任何地方定义。

例如,if是保留关键字。您无法重新定义它,即使您可以,您将如何使用C语言执行此操作?不过,你可以在汇编中这样做。

您所谈论的标准库函数是已包含在标准库中的普通函数,仅此而已。它们是根据语言的语法定义的。此外,您可以重新定义这些功能,但不建议这样做,因为这可能会导致各种错误和意外行为。但写作完全有效:

int puts(const char *msg) {
    printf("This has been monkey-patched!\n");
    return -1;
}

你会收到警告,抱怨重新定义标准库函数,但这段代码无论如何都是有效的。

现在,想象重新实现return

unknown_type return(unknown_type stuff) {
    // what to do here???
}