2017-07-24 1 views
-3

Ich bin neu in C++ (weiß etwas Python, aber nicht fließend) und lerne aus Referenzdokumentationen.alignof in diesem Bereich nicht deklariert?

#include <iostream> 
#include <stdalign.h> 
using namespace std; 

int main(){ 
    alignof; //error:'alignof' not declared in this scope 
} 

Ich habe stalign Header hinzugefügt, aber ich bekomme immer noch den gleichen Fehler. Ich habe auch versucht std :: algnment_of, aber immer noch das gleiche Problem.

Ich verwende den Dev-C++ - Compiler.

Edit: Ich experimentiere nur, während Sie über Datenstrukturausrichtung lernen.

+0

Was erwarten Sie 'alignof;' zu tun? Das 'alignof'-Makro in [''] (http://en.cppreference.com/w/c/types) ist eine C11-Funktion, die nicht Teil von C++ ist. In C++ ist ['alignof'] (http://en.cppreference.com/w/cpp/language/alignof) ein Operator, eine integrierte Funktion der Sprache, die kein Include benötigt. –

+1

Dev-C++ ist eine IDE, kein Compiler um genau zu sein. – Ron

+1

@ FrançoisAndrieux ['alignof' ist Teil von C++ 11] (http://en.cppreference.com/w/cpp/keyword/alignof). Nichtsdestoweniger ist die Verwendung des OP natürlich falsch. – idmean

Antwort

1

Sie verwenden nicht alignof in der richtigen Weise.

#include <iostream> 

int main(){ 
    std:: cout<< sizeof(int) << ' ' << alignof(int) << '\n'; //This is how to use it. 
    return 0; 
} 

typische Ausgabe:

4 4 

Größe und Ausrichtung von Plattform zu Plattform unterschiedlich, aber sizeof(int)==alignof(int) bekannt als ‚voll‘ ausgerichtet sein wird allgemein erforderlich (oder nur die beste Leistung) auf moderne Plattformen.

Edit: Es wurde darauf hingewiesen, dass Sie #include <cstdalign>alignof nicht verwenden müssen, aber der andere Punkt bleibt. #include <stdalign.h> ist nicht die empfohlene Methode zum Importieren von C-Standardbibliotheken, und Sie sollten das C-Präfixmodell #include <cstdalign> verwenden, wo Sie dies tun.

+0

Sie müssen 'cstdalign' (oder irgendetwas anderes) für 'alignof' in C++ nicht einschließen. – interjay

+0

@interjay. Mein Fehler und meine schlechte Angewohnheit. – Persixty

Verwandte Themen