使用 include<con> “杀死“ 编译器

简介: 使用 include<con> “杀死“ 编译器的尝试和原理

一次尝试


  读者可以尝试如下代码,其中包含 #include <con>,不出意外的话你就"杀死"了你的编译器


#include <con>
#include <stdio.h>
int main() {
  printf("Hello World!!!\n");
  return 0;
} 


原理


     运行了上面的代码,读者就会发现编译器没有反应了,编译器其实并不是真正意义上的"死掉"了,它只是在读取键盘。因为 con 是 Windows 保留文件名,表示标准输入输出,所以预处理器运行到这一行,就在等待你的键盘输入。类似的 Linux 下的 #include </dev/console> 有同样的效果。


相关文章
|
5月前
|
存储
include函数
【2月更文挑战第15天】include函数。
53 2
|
5月前
|
C语言
typedef 和 # define 用法区别
typedef 和 # define 用法区别
48 0
|
5月前
|
编译器
头文件ifndef用法及意义#pragma once
头文件ifndef用法及意义#pragma once
52 0
|
5月前
|
存储 编译器 C语言
<C语言错误处理> <errno.h>头文件与<error.h>头文件
<C语言错误处理> <errno.h>头文件与<error.h>头文件
|
5月前
|
编译器 程序员 C++
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
80 0
[VC6]std::vector派生类无法调用std::vector的解决方法
[VC6]std::vector派生类无法调用std::vector的解决方法
|
C++
万能头文件#include<bits/stdc++.h>
#include<bits/stdc++.h>这个头文件的含义
338 1
|
编译器 C语言
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用