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

  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011