2014-09-16 27 views
7

Bir 3. parti kitaplığı typedef s byte için char kullanıyorum.Bir şeyi nasıl yazdırabilirim (geçici olarak)?

(Bu, derleyicinin seçimine bağlı olarak charsigned veya unsigned olabilir).

Ne yazık ki bu typedef tuttuğum kod tabanına döküldü ve onları kaldırmak istiyorum: doğrudan yerine uint8_t kullanarak.

bir yol benim kod (yani direcly sonra #include <3rdpartylib>) gidince bu typedef geri nasılsa orada olabilir mi?

Ben bütün byte s kaldırdıktan sonra benim kod tabanı "çözüm" kaldırmak için bir konumda olacaktır.

+1

xyz, bu 3. parti kütüphane gerçekten typedef xyz çağırır ve ... – CashCow

+0

"üzerine dökülen" artık byte değil demektir? Demek istedikleri olmasa bile kodlayıcılar (belki de kendiniz) byte kullanıyorsunuz? Bu düzeltmek kolay olmaz mıydı? Ben * derleyici alabilirsiniz eğer –

+1

Evet ama daha da kolay * 'byte's nerede bana işaret yardımcı olur. @ Deduplicator'un çözümü iyi çalışıyor! –

cevap

12

kolay yolu böylece 3. taraf-kütüphane içerir parantez içi edilir.

Önkoşul: ön işleme-token byte sadece asla başka bir şey için, <3rdpartylib> bu typedef-adı olarak kullanılır. yapacak

+0

Bu inanılmaz derecede hackish olmakla kitaplık düzgün isim çatışma çıkmasını önlemek için ad alanlarını kullanmıyorsa evet, bunu yapabileceğiniz tek şey bu. – rubenvb

1

Onun mümkün değildir bunu yapmak. Undef sadece makrolarda çalışıyor. <3rdpartylib> düzenlemek için gereğini ortadan kaldırır

#define byte somethingnotnamedbyte 
#include <3rdpartylib> 
#undef byte 

ve makrolar veya kötü typedef kodunuzu kirletmeyi engellemektedir:

İlgili konular