Quero usar ponteiros exclusivos com sdl2, mas a declaração para fazê-los funcionar pode ser longa, então eu estava tentando usar um #define
que me permitisse simplesmente inserir o tipo que eu quero extrair e usá-lo.
Mas eu me deparei com o problema simples de que o parâmetro macro não é reconhecido quando está adjacente a outro texto. Por exemplo, na seguinte declaração:
#define SDL(type) SDL_type
o type
no texto de substituição é tratado como parte de uma palavra maior em vez de um parâmetro de macro. A intenção é que SDL(int)
se tornaria SDL_int
, mas em vez disso se torna SDL_type
, ignorando o argumento fornecido.
Existe algum tipo de sinalizador ou token que me permita simplesmente "inserir" o conteúdo da variável ao lado do texto já existente sem adicionar nada ao define?
Aqui está como o compilador expande uma macro similar.
Em vez de
SDL_(Texture)
and SDL_Destroy(Texture)
, a expansão desejada é SDL_Texture
and SDL_DestroyTexture
.