2016-07-24 15 views
1
#include <iostream> 
using namespace std; 
typedef unsigned int64_t COUNT_TYPE; 
int main() 
{ 
    cout << "Hello world!" << endl; 
    return 0; 
} 

beim Kompilieren, heißt es: main.cpp | 4 | Fehler: expected initializer vor ‚COUNT_TYPE‘ |Fehler: erwartete initializer vor ‚COUNT_TYPE‘ in einem typedef Ausdruck

+4

Dies ist die eher stumpfsinnige Art, Ihnen zu sagen, dass 'unsigned int64_t' kein Typ ist. 'std :: uint64_t',' unsigned long long' usw. sind machbar. – ildjarn

Antwort

1

Wenn Sie unsigned int schreiben, wird die unsigned nicht "ändern", um die int; der Typ ist "unsigned int".

Sie können unsigned oder signed nicht zu einem vorhandenen Typnamen "hinzufügen".

Anstatt int64_t zu verwenden und zu versuchen, es in einen vorzeichenlosen Typ zu konvertieren, verwenden Sie einen unsignierten Typ wie uint64_t.

Und vergessen Sie nicht, <cstdint> aufzunehmen, damit Sie tatsächlich auf diese Typen zugreifen können.

0

Sie können unsigned int64_t nicht verwenden. Verwenden uint64_t die definiert ist:

<cstdint> 

Hoffnung, die :-)

+0

OP weiß, dass sie "nicht können" und fragt _why_. –

-1

int64_t hilft typedef fundamentaler Integer-Typ ist. Sie müssen also die Definition hinzufügen. schließen Sie cstdint in Ihrem Programm wie folgt ein. #include <cstdint> und es gibt bereits unsigned int64 typedefs sind verfügbar. uint64_t

Verwandte Themen