2012-06-22 16 views

cevap

8

## sonucu bir tek sözcük olmalı

#define TAG     "TAG" 
#define PRE     CAT(CAT("<",TAG),">") 
#define POS     CAT(CAT("</",TAG),">") 

#define XML  CAT(CAT(PRE,"XML SOMETHING"),POS) 

yapmaya çalışıyorum budur ve "HELLO""WORLD" tek değil jeton.

printf("HELLO" "WORLD"); 

Veya ## kaldırmak için makro değiştirin: dizeleri bitiştirmek için, sadece birbirlerinin yanında bırakırlar. bunların arasında herhangi bir simge olduğunda

#define CAT(A, B) A B 

dize hazır bir araya birleştirilir.

+0

"Tek bir jeton" ile neyi işaret ediyorsunuz? preprocessor ile nasıl birleştirme yapabilirim? – trucos

+1

@trucos: Cevabın son tümceyi okuyun. Burada bir makroya gerçekten gerek yok; derleyici zaten sizin için birleştirme yapar. – cHao

+1

Eğer istemiyorum bir makro istemiyorsam, sorum benim bir makro =) ile nasıl yapılacağıdır. Belki bu mümkün değildir – trucos

İlgili konular