宏定义include"stdio.h"可加可不加?

简介: 宏定义include"stdio.h"可加可不加?

"stdio.h"

是写C之前告诉预处理器的一道命令,释义: standard input&output

所以了,用到标准输入输出函数时,就要调用这个头文件!

当然这是我们作为初学者学习的时候,老师和书本跟你说的!

今天学弟跑了一段代码: 98f38269d730bdd5280b29ee73083007.png

但是执行结果是对的!且没有waring!代码中还留有printf输出函数,我来回执行发现都显示正确,我感到非常惊讶,于是把代码原样搬到了自己的笔记本电脑上跑了一下!!!

坦白的说上图才是我想看到的执行结果,那为什么会这样呢???

首先我们要认识到:

  1. #include 宏定义不是C语言!
  2. 很多老的编译器会默认隐含包含stdio.hstdlib.h两个头文件。这时候即使你没有自己手动包含stdio.h也是不会报错的。

除了这种情况我们也可以换一种方法:

自己声明标准库函数原型

结论:

  1. #include基本上只是相当于打开你include的文件,然后复制到#include语句的位置,理论上完全可以手动把那几个文件复制过去。

所以你觉得还需要写#include 吗??

欢迎下方评论区讨论?

目录
相关文章
|
3月前
|
编译器 C++
#include<> 与#include ""的区别
在C++中,`#include &lt;&gt;` 和 `#include &quot;&quot;` 都用于包含头文件,但使用场景不同。`#include &lt;&gt;` 用于包含系统标准库头文件,编译器会在标准库路径中查找;而 `#include &quot;&quot;` 用于包含用户自定义的头文件,编译器会优先在当前项目目录中查找。
|
8月前
|
编译器 C语言
c头文件
c头文件
60 0
|
8月前
|
存储
include函数
【2月更文挑战第15天】include函数。
90 2
|
8月前
|
编译器
头文件ifndef用法及意义#pragma once
头文件ifndef用法及意义#pragma once
68 0
|
C++
万能头文件#include<bits/stdc++.h>
#include<bits/stdc++.h>这个头文件的含义
381 1
|
编译器 C语言
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
116 0
【C++的万能超级无敌头文件 #include <bits/stdc++.h> 】
【C++的万能超级无敌头文件 #include <bits/stdc++.h> 】
|
编译器 C++
解决iostream.h在vc2008下不能被include
解决iostream.h在vc2008下不能被include
99 0
条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别
条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别
144 0