Here是我的代碼。我在這個問題提供了源,因爲它沒有那麼大:getchar_unlocked in windows unde undered
#include <stdio.h>
void scan(int* i)
{
int t=0;
char c;
bool negative=false;
c=getchar_unlocked();
while(c<'0'&&c>'9')
{
if(c=='-')
negative=true;
c=getchar_unlocked();
}
while(c>'0'&&c<'9')
{
t=(t<<3)+(t<<1)+c-'0';
c=getchar_unlocked();
}
if(negative)
t=~(t-1); //negative
*i=t;
}
int main(int argc, char const *argv[])
{
int i;
scan(&i);
return 0;
}
我知道這裏被定義爲scan
功能快於scanf
並且是編程競賽是非常有用的。但由於某些原因,此代碼不能在Windows上工作,並且正在使用Linux。我該怎麼做才能讓它在windows上運行。我正在使用dev-c++
的g++
編譯器。
的是有辦法,我可以判斷是否getchar_unlocked''在定義目標系統? – prongs
如果您知道在您定義的系統上可以使用條件編譯。但我不知道有任何完全自動的方式來做到這一點。 – john
@prongs爲什麼你不試試,它爲spoj工作,我剛剛嘗試和getchar 0.04並解鎖了0.02,200%的改善。 –