In c++
wenn ich versuche, den folgenden Code ich eine widersprüchliche Erklärung Fehler zu kompilieren:neu definieren uint Typ C++
#include <iostream>
using namespace std;
typedef uint_least64_t uint;
int main() {
uint i = -1;
cout << i << endl;
}
Fehler:
main.cpp:5:24: error: conflicting declaration ‘typedef uint_least64_t uint’
typedef uint_least64_t uint;
^~~~
In file included from /usr/include/stdlib.h:275:0,
from /usr/include/c++/6/cstdlib:75,
from /usr/include/c++/6/ext/string_conversions.h:41,
from /usr/include/c++/6/bits/basic_string.h:5417,
from /usr/include/c++/6/string:52,
from /usr/include/c++/6/bits/locale_classes.h:40,
from /usr/include/c++/6/bits/ios_base.h:41,
from /usr/include/c++/6/ios:42,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from main.cpp:1:
/usr/include/x86_64-linux-gnu/sys/types.h:152:22: note: previous declaration as ‘typedef unsigned int uint’
typedef unsigned int uint;
^~~~
Ich gehe davon aus, dass Erklärung Fehler in Konflikt, weil der Art ist, Erklärung für uint
existiert bereits irgendwo in der Sprache, und ich glaube, dass der Typ uint_least32_t
ist, weil:
#include <iostream>
using namespace std;
int main() {
uint i = -1;
cout << i << endl;
}
gibt einen ganzzahligen Wert zurück, der (2^32) -1 ist. Daher ist es möglich, in c++
uint
als uint_least64_t
neu zu definieren.
Zeigen Sie den Rest Ihres Codes. – melpomene
Die Frage wurde bearbeitet. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. – Sajeeb