有人可以解释这个行为?只有2行代码
发布时间:2020-12-16 03:18:50 所属栏目:百科 来源:网络整理
导读:参见英文答案 Can printf get replaced by puts automatically in a C program?4个 请仔细解释一下这段代码: #include stdio.hint puts(const char *str) { fputs("Hello world!n",stdout);}int main() { printf("Goodbyen");} 输出:你好世界!返回13 解
参见英文答案 >
Can printf get replaced by puts automatically in a C program?4个
请仔细解释一下这段代码: #include <stdio.h> int puts(const char *str) { fputs("Hello world!n",stdout); } int main() { printf("Goodbyen"); } 输出:你好世界!返回13 解决方法
它是编译器特定的.你得到这个行为与
GCC.这里有一些细节.
因为你#include< stdio.h> (实际上是因为你在一个托管环境中),这个放置是C99的标准,重新定义是undefined behavior 如果您使用-freestanding编译,则不会观察到. 你的问题非常接近this one;所以this answer也是有关系的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |