2016-03-30 5 views
4

В C, я хочу добавить строку префикса пространства имен (без кавычек) ко всем функциям, для которых я хочу, чтобы это произошло, а позже легко изменить строку пространства имен.добавить строку пространства имен ко всем функциям

Мой подход:

#define NAMESPACE project_name 

void NAMESPACE_func_name() 
{ 
} 

That should become: 

void project_name_func_name() 
{ 
} 

Это возможно, как? Спасибо за помощь.

+0

Разве вы не можете достичь того же с помощью находки среды IDE & заменить? Просто предлагаю, хотя я понимаю минусы. –

+1

@Am_I_Helpful Я никогда не полагался на свою IDE. Некоторые люди тоже не используют его. – Downvoter

ответ

7

Вы можете сделать это с помощью макроса оператора конкатенации и функции типа макросов:

#define NAMESPACE(name) project_name_ ## name 

void NAMESPACE(func_name)(void) 
{ 
    ... 
} 
2

Вы можете сделать это с помощью макроса concatenation

#define NAMESPACE(function) project_name ## function 

void NAMESPACE(func_name)() 
{ 
} 
Смежные вопросы