Mam podstawowy program, który porównuje dwa ciągi:Dlaczego strcmp jest nieznany?
#include <string>
#include <iostream>
using namespace std;
int main (int argc, char *argv[]) {
if(strcmp (argv[0],"./test") != 0) {
cout << "not equal" << endl;
} else {
cout << "equal" << endl;
}
return 0;
}
kompiluje z gcc ale nie z brzękiem:
> clang -o test test_clang.cpp
test_clang.cpp:7:6: error: use of undeclared identifier 'strcmp'
if(strcmp (argv[0],"./test") != 0) {
^
1 error generated.
Dlaczego nie skompilować z brzękiem?
EDYCJA: Ludzie stają się coraz trudniejsi na skutek przepełnienia stosu, do tego stopnia, że waham się napisać pytanie. Powyższe pytanie ma prostą odpowiedź, w porządku, ale czy jest to normalne w przypadku głosowania w dół (dwukrotnie w pierwszej minucie!), Ponieważ mają prostą, ale nieoczywistą odpowiedź?
Nie mam pojęcia, dlaczego ludzie go za to zabrali. Jest jasno określone i ważne pytanie. – aschepler
"To pytanie nie wykazuje żadnych wysiłków badawczych". Pierwsze trafienie w Google dla "strcmp" ma przykład kodu z '#include' (który jest również poprawnym rozwiązaniem). Minimalne badania mogłyby odpowiedzieć na to pytanie. Dlatego go obniżyłem. Nieznaczne pytania pomniejszają wartość tej strony. –
Tworzenie minimalnego przykładu i porównywanie wyników dwóch kompilatorów to wysiłek badawczy. – aschepler