宏定义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 吗??

欢迎下方评论区讨论?

目录
相关文章
|
12月前
|
编译器 程序员 C++
C头文件
C头文件。
33 0
|
5月前
|
编译器 C语言
c头文件
c头文件
39 0
|
12月前
|
编译器 程序员 C++
C 头文件
C 头文件。
26 0
|
5月前
|
存储
include函数
【2月更文挑战第15天】include函数。
55 2
|
5月前
|
编译器 C++
[C++] include头文件双引号““与尖括号<>的区别
[C++] include头文件双引号““与尖括号<>的区别
73 0
|
C++
万能头文件#include<bits/stdc++.h>
#include<bits/stdc++.h>这个头文件的含义
351 1
条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别
条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别
123 0
|
C++
c++ 常用头文件
c++ 常用头文件
166 0
|
编译器 C语言
C语言 预处理详解(#include、#define、#if,特殊预定宏)
C语言 预处理详解(#include、#define、#if,特殊预定宏)
511 0
C语言 预处理详解(#include、#define、#if,特殊预定宏)