typedef char arr_name[20];arr_name ane; ane[20]="wujunwu"
typedef char arr_name[20];arr_name ane; ane[20]="wujunwu"
int a=2;int* pointer;pointer =&a;
int a=2;int* pointer;pointer =&a;
int a=2;typedef int* pointer;pointer p;p=&a;
int a=2;typedef int* pointer;pointer p;p=&a;
Was sind die Verwendungszwecke von typedef?
Die Verwendung von Typedef ist: 1. Typedef-Basisdatentypen verwenden „Aliase“. Alle Datentypen in der C-Sprache können Typedef verwenden, um den Typnamen neu zu definieren. 2. Typedef verwendet „Aliase“ für benutzerdefinierte Daten Typen. ", die benutzerdefinierten Datentypen umfassen: Struktur Strukturname { };, Union Unit Name { };, Enumeration Enum { }; 3. Typedef verwendet „Alias“ für Array; 4. Typedef verwendet „Alias“ für Zeiger.
Die Betriebsumgebung dieses Artikels: Windows 10-System, C++ 20-Version, Dell G3-Computer.
In praktischen Anwendungen hat Typedef hauptsächlich die folgenden vier Verwendungszwecke:# 🎜 🎜#
1) Typedef-Basisdatentypen verwenden „Aliase“
Das heißt, alle Datentypen in der C-Sprache können das Schlüsselwort typedef verwenden. Neu definieren der Typnametypedef unsigned int size;typedef unsigned int16 u16;typedef unsigned int8 u8;...
2) typedef nimmt einen „Alias“ für den benutzerdefinierten Datentyp an
Zu den benutzerdefinierten Datentypen gehören: Struktur Name der Körperstruktur { };, Union Body Unit Name { };, Enumeration Enum { }; #Sie können typedef auch verwenden, um Folgendes zu definieren: " für das Arraystruct students{ char sex; char name[120]; int ages;};
#🎜🎜 #4) typedef nimmt einen „Alias“ für den Zeiger
Gewöhnlicher Zeiger struct students{
char sex;
char name[120];
int ages;}std;std.name[20]="wujunwu"
Nach dem Login kopierenNach dem Login kopieren ist äquivalent zu:
struct students{ char sex; char name[120]; int ages;}std;std.name[20]="wujunwu"
struct students{ char sex; char name[120]; int ages;};typedef struct students std;std.name[20]="wujunwu"
wenn der Datentyp von a char ist, also char a =2, dann typedef char arr_name[20];arr_name ane; ane[20]="wujunwu"
Nach dem Login kopierenNach dem Login kopieren
typedef char arr_name[20];arr_name ane; ane[20]="wujunwu"
Funktionszeigerint a=2;int* pointer;pointer =&a;
Nach dem Login kopierenNach dem Login kopierenTatsächlich führt das obige Programm zwei Schritte aus:
Schritt eins: Geben Sie dem Zeiger einen „Alias“
int a=2;int* pointer;pointer =&a;
int a=2;typedef int* pointer;pointer p;p=&a;
char a=2;typedef int* pointer;pointer p;p=&(pointer)a;
Schritt drei: Weisen Sie dem Zeiger einen Wert zu#🎜🎜 #
typedef unsigned int bool;typedef bool(*pCopySDMMC2Mem)(int, unsigned int, unsigned short, unsigned int*, bool);typedef void (*pBL2Type)(void);pCopySDMMC2Mem p1=(pCopySDMMC2Mem)0xD0037F98;pBL2Type p2 = (pBL2Type)0x23E00000;
Traps in typedef
Sehen Sie sich als Nächstes ein einfaches Beispiel für die Verwendung von typedef an, wie im folgenden Code gezeigt:
pCopySDMMC2Mem p1;pBL2Type p2;
(pCopySDMMC2Mem)0xD0037F98; //真正在写代码时不能这样写(pBL2Type)0x23E00000;
p1=(pCopySDMMC2Mem)0xD0037F98;p2 = (pBL2Type)0x23E00000;
Nach dem Login kopierenNach dem Login kopieren
Der Grund dafür ist, dass mehrere Schlüsselwörter der Speicherklasse nicht deklariert werden können, da typedef bereits die Position des Schlüsselworts der Speicherklasse belegt hat. Dies ist nicht mehr möglich Verwenden Sie in einer Typedef-Deklaration das Schlüsselwort static oder ein anderes Speicherklassenschlüsselwort. Natürlich meldet der Compiler auch einen Fehler. Die Fehlermeldung in VC++2010 lautet beispielsweise „Es können nicht mehrere Speicherklassen angegeben werden.“
p1=(pCopySDMMC2Mem)0xD0037F98;p2 = (pBL2Type)0x23E00000;
Der Unterschied zwischen typedef und #define:
#🎜 🎜 #(1) Der von typedef erstellte Symbolname ist auf Typen beschränkt, nicht auf Werte. (2) typedef wird vom Compiler interpretiert, nicht vom Präprozessor
typedef Die vier Verwendungen von In praktischen Anwendungen hat typedef hauptsächlich die folgenden vier Verwendungen:
1) Typedef Basic Der Datentyp nimmt „Alias“ an 🎜#2) typedef akzeptiert „Aliase“ für benutzerdefinierte Datentypen Häufig verwendete Methoden zum Neudefinieren von Datennamen für Strukturen sind: typedef unsigned int size;typedef unsigned int16 u16;typedef unsigned int8 u8;...
Nach dem Login kopierenNach dem Login kopieren
Sie können typedef auch verwenden, um Folgendes zu definieren:
typedef unsigned int size;typedef unsigned int16 u16;typedef unsigned int8 u8;...
struct students{ char sex; char name[120]; int ages;};
#🎜🎜 #3 ) typedef benötigt einen „Alias“ für das Array struct students{
char sex;
char name[120];
int ages;}std;std.name[20]="wujunwu"
Nach dem Login kopierenNach dem Login kopieren
struct students{ char sex; char name[120]; int ages;}std;std.name[20]="wujunwu"
4) typedef benötigt einen „Alias“ für den Zeiger
#🎜 🎜#Gewöhnlicher Zeigerstruct students{ char sex; char name[120]; int ages;};typedef struct students std;std.name[20]="wujunwu"
typedef char arr_name[20];arr_name ane; ane[20]="wujunwu"
Nach dem Login kopierenNach dem Login kopieren
Wenn der Datentyp von a char ist, also char a =2; dann #🎜🎜 #int a=2;int* pointer;pointer =&a;
Nach dem Login kopierenNach dem Login kopieren
typedef char arr_name[20];arr_name ane; ane[20]="wujunwu"
int a=2;int* pointer;pointer =&a;
Funktionszeigerint a=2;typedef int* pointer;pointer p;p=&a;
Nach dem Login kopierenNach dem Login kopierenTatsächlich führt das obige Programm zwei Schritte aus:
Der erste Schritt: Geben Sie dem Zeiger einen „Alias“ int a=2;typedef int* pointer;pointer p;p=&a;
char a=2;typedef int* pointer;pointer p;p=&(pointer)a;
Nach dem Login kopierenNach dem Login kopieren
Schritt 2: Erzwungene Typkonvertierungtypedef unsigned int bool;typedef bool(*pCopySDMMC2Mem)(int, unsigned int, unsigned short, unsigned int*, bool);typedef void (*pBL2Type)(void);pCopySDMMC2Mem p1=(pCopySDMMC2Mem)0xD0037F98;pBL2Type p2 = (pBL2Type)0x23E00000;
Nach dem Login kopierenNach dem Login kopieren
Schritt 3: Weisen Sie dem Zeiger einen Wert zu
char a=2;typedef int* pointer;pointer p;p=&(pointer)a;
typedef unsigned int bool;typedef bool(*pCopySDMMC2Mem)(int, unsigned int, unsigned short, unsigned int*, bool);typedef void (*pBL2Type)(void);pCopySDMMC2Mem p1=(pCopySDMMC2Mem)0xD0037F98;pBL2Type p2 = (pBL2Type)0x23E00000;
pCopySDMMC2Mem p1;pBL2Type p2;
Traps in typedef
Sehen Sie sich als Nächstes ein einfaches Typedef-Verwendungsbeispiel an, wie im folgenden Code gezeigt:(pCopySDMMC2Mem)0xD0037F98; //真正在写代码时不能这样写(pBL2Type)0x23E00000;
Die Antwort ist nein. Der Grund ist einfach. Typedef wird zum Definieren eines neuen Alias eines Typs verwendet. Es unterscheidet sich von einem Makro und ist kein einfacher String-Ersatz. Daher verleiht die Konstante in „const PCHAR“ dem gesamten Zeiger selbst Konstanz, was den Konstantenzeiger „char* const (ein konstanter Zeiger, der auf char zeigt)“ bildet. Das heißt, es entspricht tatsächlich „char* const“ und nicht „const char* (Zeiger auf Konstante char)“. Natürlich ist es auch einfach, const PCHAR äquivalent zu const char* zu machen, wie im folgenden Code gezeigt:
p1=(pCopySDMMC2Mem)0xD0037F98;p2 = (pBL2Type)0x23E00000;
typedef char* PCHAR;int strcmp(const PCHAR,const PCHAR);
Das obige ist der detaillierte Inhalt vonWas sind die Verwendungszwecke von typedef?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

typedef struct wird in der C-Sprache zum Erstellen von Strukturtypaliasen verwendet, um die Verwendung von Strukturen zu vereinfachen. Es weist einem neuen Datentyp ein Alias auf eine vorhandene Struktur zu, indem es den Strukturalias angibt. Zu den Vorteilen gehören verbesserte Lesbarkeit, Wiederverwendung von Code und Typprüfung. Hinweis: Die Struktur muss vor der Verwendung eines Alias definiert werden. Der Alias muss im Programm eindeutig sein und nur innerhalb des Bereichs gültig sein, in dem er deklariert ist.

strcpy kopiert einen String in einen anderen String, während strcat einen String an einen anderen String anhängt. Zu den Hauptunterschieden gehören: unterschiedliche Zwecke, unterschiedliche DST-Parameterverarbeitung und unterschiedliche Sicherheitsaspekte.

real ist der Datentyp, der zur Darstellung von Gleitkommazahlen mit doppelter Genauigkeit in der Sprache C verwendet wird. Er belegt 8 Bytes, hat eine Genauigkeit von etwa 15 Dezimalstellen und der Bereich beträgt [-1,7976931348623157e+308, 1,7976931348623157e+308].

Der komplexe Typ wird zur Darstellung komplexer Zahlen in der C-Sprache verwendet, einschließlich Real- und Imaginärteilen. Seine Initialisierungsform ist complex_number = 3.14 + 2.71i, auf den Realteil kann über creal(complex_number) und auf den Imaginärteil über cimag(complex_number) zugegriffen werden. Dieser Typ unterstützt gängige mathematische Operationen wie Addition, Subtraktion, Multiplikation, Division und Modulo. Darüber hinaus wird eine Reihe von Funktionen zum Arbeiten mit komplexen Zahlen bereitgestellt, z. B. cpow, csqrt, cexp und csin.

In der C-Sprache gibt es zwei Möglichkeiten, die Potenzierungsoperation zu implementieren: Verwenden Sie die Funktion pow(), um die Potenz des zweiten Parameters des ersten Parameters zu berechnen. Definieren Sie eine benutzerdefinierte Potenzfunktion, die rekursiv oder iterativ implementiert werden kann: Die rekursive Methode verdoppelt die Potenz weiterhin, bis sie 0 ist. Die iterative Methode verwendet eine Schleife, um die Basis einzeln zu multiplizieren.

In der C-Sprache umfassen die Methoden zur Behandlung von Scanf-Funktionen: 1. Überprüfen Sie die Eingabe; 3. Überprüfen Sie den Rückgabewert. 5. Verwenden Sie die Fehlerbehandlungsfunktion Benutzerdefinierte Fehler behandeln. Um Fehler zu vermeiden, verwenden Sie die richtigen Datentypen, validieren Sie Eingaben sorgfältig, überprüfen Sie Rückgabewerte und behandeln Sie potenzielle Fehler in Ihrem Programm.

Das Schlüsselwort „restrict“ wird verwendet, um den Compiler darüber zu informieren, dass auf eine Variable nur mit einem Zeiger zugegriffen werden kann. Dadurch wird undefiniertes Verhalten verhindert, der Code optimiert und die Lesbarkeit verbessert: Verhindert undefiniertes Verhalten, wenn mehrere Zeiger auf dieselbe Variable zeigen. Um den Code zu optimieren, verwendet der Compiler das Schlüsselwort „restrict“, um den Variablenzugriff zu optimieren. Verbessert die Lesbarkeit des Codes, indem es angibt, dass auf Variablen nur mit einem Zeiger zugegriffen werden kann.

_Bool stellt den booleschen Typ in der C-Sprache dar. Es handelt sich um einen einfachen Datentyp, der nur zwei Werte enthält, wahr oder falsch. Er wird verwendet, um die Ergebnisse von Bedingungen oder logischen Ausdrücken darzustellen. Er belegt normalerweise 1 Byte Speicher und kann nur wahr oder falsch speichern falsch. falscher Wert.