快速输入输出功能

use*_*088 5 c c++ operating-system coding-style

#define getcx getchar_unlocked
inline void inp( int &n )//fast input function
{
   n=0;
   int ch=getcx();int sign=1;
   while( ch < '0' || ch > '9' ){if(ch=='-')sign=-1; ch=getcx();}

   while(  ch >= '0' && ch <= '9' )
           n = (n<<3)+(n<<1) + ch-'0', ch=getcx();
   n=n*sign;
}
Run Code Online (Sandbox Code Playgroud)

嗨我一直在各种编码竞赛中使用上述功能输入,但从来没有能够理解为什么它很快.我知道逻辑,但不知道它的坚牢度的概念.例如,这行是做什么的"#define getcx getchar_unlocked".另外我不知道任何快速输出功能,所以还有任何快速输出功能

unw*_*ind 3

使用#define预处理器使 成为getcx函数 的简写getchar_unlocked(),它是一个非锁定字符读取函数。

您参加了多次编码比赛却没有理解 C 语言的这个相当基本的部分,这真是太棒了。

我上面链接到的手册页提到,除了输出之外,putc_unlocked()这听起来几乎是一样的。