cl lookma.c Microsoft (R)-6ren">
gpt4 book ai didi

c - 为什么#include 不需要使用 printf()?

转载 作者:太空狗 更新时间:2023-10-29 16:22:42 25 4
gpt4 key购买 nike

session 记录:

> type lookma.c
int main() {
printf("%s", "no stdio.h");
}

> cl lookma.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

lookma.c
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

/out:lookma.exe
lookma.obj

> lookma
no stdio.h

最佳答案

您最初标记了这个 C++,但它看起来像是一个 C 程序。如果范围内没有原型(prototype)(例如由于省略#include ),C 将自动为函数提供隐式声明。隐式声明将是:

int printf();

这意味着 printf 是一个返回 int 并且可以接受任意数量参数的函数。这个原型(prototype)恰好适合你的电话。你应该#include

最后,我要补充一点,当前的 C 标准(ISO/IEC 9899:1999 或通俗地称为“C99”)不允许允许隐式声明,并且此程序不符合要求。隐式声明已删除。我相信你的编译器不支持 C99。 C++ 还需要正确的原型(prototype)并且不进行隐式声明。

关于c - 为什么#include <stdio.h> 不需要使用 printf()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com