Я пытаюсь решить одну проблему с практикой кодека subtraction game 1 с программированием c и блоками кода как IDE. Я нашел один способ чтения ввода быстрее, чем функция scanf(), но когда я запускаю свою программу, я получаю ошибку «неопределенная ссылка на« getchar_unlocked »error». Можете ли вы, ребята, сказать мне, что я делаю неправильно, и есть ли какой-либо другой метод для чтения ввода быстрее?undefined ссылка на ошибку 'getchar_unlocked'
#include<stdio.h>
inline int fastread()
{
int noRead=0;
char p=getchar_unlocked();
for(; p<33;) {
p=getchar_unlocked();
};
while(p>32) {
noRead = (noRead << 3) + (noRead << 1) + (p - '0');
p=getchar_unlocked();
}
return noRead;
};
unsigned int gcd(unsigned int a, unsigned int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int main()
{
int t,i,answer=0;
unsigned int n;
t = fastread();
while(t--)
{
n = fastread();
unsigned int a[n];
for(i=0;i<n;i++)
a[i]=fastread();
answer = gcd(a[0],a[1]);
for(i=2;i<n;i++)
answer = gcd(a[i],answer);
printf("%u\n",answer);
}
return 0;
}
Я думаю, что 'getchar_unlocked' устарел в Windows, потому что это потоковая небезопасная версия' getchar() '.Sp, возможно, она недоступна в библиотеке блоков кода. Если коэффициент скорости слишком большой, попробуйте избежать getchar_unlocked. –
Возможно, кто-то должен спросить MS, почему они не поддерживают POSIX? – mfro
@Jayesh Это означает, что я не могу использовать getchar_unlocked. можете ли вы предложить любой другой более быстрый способ чтения ввода? –