SORU
15 HAZİRAN 2014, Pazar


Anlamı `X` vs `X yapı typedef typedef yapı`nedir?

Varolan kod tabanı, C ve C arasında paylaşılan dosya vardır , MSVC (2010) derleme ve Windows KGK: kullanılan (işçi) aşağıdaki kodu var

struct X {
    USHORT x;
} typedef X, *PX;

Ve:

enum MY_ENUM {
    enum_item_1,
    enum_item_2 
} typedef MY_ENUM;

Bildiğim kadarıyla, doğru tanım bu gibi görünmelidir:

typedef struct {
    USHORT x;
} X, *PX;

Aşağıdaki formu olması için herhangi bir amaç var mı? Bir şey mi kaçırdım?

CEVAP
15 HAZİRAN 2014, Pazar


typedef <type> <alias> <type> typedef <alias> Her ikisi de geçerli olması sadece dil dilbilgisi tanımından geliyor.

typedef olarak sınıflandırılırDepolama sınıfı specfifier(sadece static, auto) gibi, tür olarak da bilinir kendisitürü belirleyicisi. Standart bölüm 6.7 sözdizimi tanımları, bu öyle ayarlanır ki, özgür olduğunu görürsünüz.

declaration:
    declaration-specifiers init-declarator-list ;

declaration-specifiers:
    storage-class-specifier declaration-specifiers
    type-specifier declaration-specifiers
    type-qualifier declaration-specifiers
    function-specifier declaration-specifiers

init-declarator-list:
    init-declarator
    init-declarator-list , init-declarator

init-declarator:
    declarator
    declarator = initializer

(Tabii bu olmayan yapılar için yapı ve aynı derecede gerçek olduğunu, double typedef trouble; de geçerli olduğu anlamına gelir, unutmayın.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • PhoneArena

    PhoneArena

    7 NİSAN 2006