Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen Cs „typedef' und „using' Schlüsselwörtern für Typaliase?
Was ist der Unterschied zwischen „typedef“ und „using“ in C?
In C 11 kann das Schlüsselwort „using“ sein Wird zum Erstellen von Typaliasen verwendet, die dem herkömmlichen Schlüsselwort „typedef“ ähneln. Während beide Syntaxen das gleiche Ergebnis erzielen, indem sie einem vorhandenen Typ einen neuen Namen zuweisen, gibt es subtile Unterschiede in ihrer Semantik, die berücksichtigt werden müssen.
Ist „using“ gleichbedeutend mit „typedef“?
Gemäß dem C-Standard (7.1.3.2) führt „using“ einen Typedef-Namen mit identischer Semantik ein, als ob er es wäre definiert mit 'typedef'. Das bedeutet, dass „using“ keinen neuen Typ erstellt, sondern stattdessen einen alternativen Namen für einen vorhandenen Typ bereitstellt. Konvertierungen zwischen diesen Namen sind implizit.
Unterschiede in der Semantik
Trotz ihrer ähnlichen Syntax und Semantik unterscheidet sich das Schlüsselwort „using“ von „typedef“ in folgenden Punkten:
template<typename T> using MyType = AnotherType<T, MyAllocatorType>;
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Cs „typedef' und „using' Schlüsselwörtern für Typaliase?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!