Sì, è necessario utilizzare il tipo di dati corretto per gli argomenti per le funzioni oppure è probabile che si trovi in difficoltà.
E la ragione che questi tipi sono definiti come sono, invece di usare int
, char
e così via è che si rimuove il "qualunque sia il compilatore pensa un int
devono essere dimensionati come" dall'interfaccia del sistema operativo. Il che è una cosa molto buona, perché se si utilizza il compilatore A, o il compilatore B, o il compilatore C, tutti useranno gli stessi tipi: solo il file di intestazione dell'interfaccia della libreria deve fare la cosa giusta per definire i tipi.
Definendo tipi che non sono tipi standard, è facile cambiare int
da 16 a 32 bit, ad esempio. I primi compilatori C/C++ per Windows utilizzavano numeri interi a 16 bit. Solo a metà degli ultimi anni '90 Windows ha ottenuto un'API a 32 bit e fino a quel momento stavi usando int
a 16 bit. Immagina di avere un programma ben funzionante che utilizza diverse centinaia di variabili int
e, all'improvviso, devi modificare TUTTE queste variabili in qualcos'altro ... Non sarebbe molto bello, giusto - specialmente come ALCUNI di quelli le variabili NON hanno bisogno di essere cambiate, perché passare a un int a 32 bit per alcuni dei tuoi codici non farà alcuna differenza, quindi nessun punto nel cambiare quei bit.
Va notato che WCHAR
non è lo stesso di const char
- WCHAR
è un "wide char" in modo wchar_t
è il tipo comparabile.
Quindi, in sostanza, il "definire il nostro tipo" è un modo per garantire che sia possibile modificare l'architettura del compilatore sottostante, senza dover modificare (molto del) codice sorgente. Tutti i progetti più grandi che fanno la codifica dipendente dalla macchina fanno questo genere di cose.
fonte
2013-02-20 16:51:03
'WCHAR' non è uguale a' char * '... (Ricevo quello che stai chiedendo) –
Questi sono tipi di dati da Macro Assembler. Quella era la lingua in cui Windows 1.0 era per lo più scritto. –