不用头文件的程序

发布时间 2023-07-25 13:36:20作者: 夏一锐

众所周知,C语言内联汇编是不需要头文件的,所以我写了个没有头文件的代码。

#define putchar(ch) \
asm("movl %%eax,(%%esp);\
call _putchar"::"a"(ch):)
int getchar(){
	char ch;
	asm("call _getchar":"=a"(ch)::);
	return ch;
}
bool isdigit(int ch){
	return ch>47&&ch<58;
}
int read(){
	int x=0,f=0;char ch=getchar();
	while(!isdigit(ch))ch^45||++f,ch=getchar();
	while(isdigit(ch))x=x*10+(ch^48),ch=getchar();
	return f?~--x:x;
}
void write(int x){
	if(x<0){putchar(45);x=~--x;}
	if(x>=10)write(x/10);
	putchar(x%10+48);
}
int main(){
	write(read()+read());
	return 0;
}