C++代码:
//-----鸡你太美-----
#define KunKun using
#define ShiBuShi namespace
#define YouBing std
#define basketball int
#define NiGanMa main
#define XiaoHeiZi cin
#define Ji cout
#define Mei endl
#define EiYou atexit
#define ZiDongJi auto
#define MeiShi void
//-----你干嘛-----
#include<bits/stdc++.h>
KunKun ShiBuShi YouBing;
basketball Ni,Tai;
ZiDongJi Oh=[]{
XiaoHeiZi>>Ni>>Tai;
};
MeiShi NiYouGanMa(){
Ji<<Ni+Tai<<Mei;
}
basketball NiGanMa(){
Oh();
EiYou(NiYouGanMa);
}
define
:宏定义,可以理解成简单替换。
#define a 10
cout<<a;//OK,equ cout<<10;
a++;//Wrong,equ 10++;
还可以宏定义函数:
#define cir(i,l,r) for(int i=l;i<=r;i++)
cir(i,1,10){
cout<<i<<' ';
}
//OK,output 1 2 3 4 5 6 7 8 9 10
注意多加(括号)
!
#define f(a,b) a*b
int c;
c=f(1,2+3);//equ 1*2+3,not 1*(2+3)
#undef f//undef,撤销宏定义
#define f(a,b) (a)*(b)//OK
19~21行的代码是一个Lambda
,可以理解为inline函数。
[]{
cout<<"Hello Lambda!"
}();
//OK,output Hello Lambda!
auto l=[]{
cout<<"Hello Lambda!"
};
l();//OK,output Hello Lambda!
Lambda
可以有自己的参数:
auto l=[](int i){
return i;
};
int c=l(10)//OK,c=10
Lambda
可以指定返回值类型。
auto l=[]()->double{
return 233;
};
//return double(233)
当然,Lambda
的[]
也有用,但太复杂,就不讲了,大家可以看看资料包。
Lambda
资料包
atexit
:可以在程序结束时调用一个void
函数。
void output(){
cout<<"鸡你太美";
}
atexit(output);//output 鸡你太美,程序结束。
再介绍两个函数:
exit
,_Exit
:直接结束程序。
最后两个🐥巧:
printf
有返回值,正常情况是非零整数,所以可以:
return !printf("1");
exit(!printf("1"));
_Exit(!printf("1"));
当return
有多个参数时,它只用最后一个:
return 9,"鸡",7,"Hello World","你",4,"太",2,"asdfjkl","美",0;//equ return 0;
最后问问大家个问题,你们有什么压行🐥巧?