使用 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> 有同样的效果。


相关文章
|
1月前
|
存储
include函数
【2月更文挑战第15天】include函数。
17 2
|
7月前
#define的用法
在程序中扩展#define定义符号和宏时,需要涉及几个步骤。 1. 在调用宏时,首先对参数进行检查,看看是否包含任何由#define定义的符号。如果是,它们首先 被替换。 2. 替换文本随后被插入到程序中原来文本的位置。对于宏,参数名被他们的值所替换。 3. 最后,再次对结果文件进行扫描,看看它是否包含任何由#define定义的符号。如果是,就重复上述处理过程。
49 0
|
3月前
|
编译器
头文件ifndef用法及意义#pragma once
头文件ifndef用法及意义#pragma once
18 0
|
4月前
|
存储 编译器 C语言
<C语言错误处理> <errno.h>头文件与<error.h>头文件
<C语言错误处理> <errno.h>头文件与<error.h>头文件
|
4月前
|
编译器 程序员 C++
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
30 0
|
10月前
|
编译器 C语言
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
宏、条件编译(#ifdef)、#include(头文件包含)、#error和 #pragma的区别、#和##的含义和应用
|
12月前
|
C++
万能头文件#include<bits/stdc++.h>
#include<bits/stdc++.h>这个头文件的含义
200 1
|
编译器 C语言
#include <stdio.h> 这段代码是干什么的?底层原理是什么?为什么这样写?
#include <stdio.h> 这段代码是干什么的?底层原理是什么?为什么这样写?
162 0
条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别
条件编译 #if #endif #if #elif #else #endif #ifdef #if define 的使用方法 引头文件#include<> 和#include““的区别
96 0