Jos*_*eek 1 c macros include c-preprocessor
如果我能找到一种方法来做类似的事情,我可以在我的应用程序中删除数百行代码,并大大提高可维护性.有人有主意吗?
#include <stdio.h>
int main( )
{
#define include_all_files(root) \
#include #root "1.h" \
#include #root "2.h" \
#include #root "3.h" \
#include #root "4.h"
include_all_files( first_library )
include_all_files( second_library )
include_all_files( third_library )
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我很欣赏这些回复,我的例子似乎导致了误导,所以这就是我实际上要解决的问题:
我正在实现一个有限状态机.通过命名约定,我已经让它变得像添加状态一样简单:
STATE(initial_screen)
#include "initial_screen.state"
END_STATE
STATE(login)
#include "login.state"
END_STATE
Run Code Online (Sandbox Code Playgroud)
但是,如果我能回答原来的问题,我可以将其重构为简单的事情:
ADD_STATE(initial_screen)
ADD_STATE(login)
Run Code Online (Sandbox Code Playgroud)
这是因为文件名和状态名称以及所有底层连接和其他所有内容都遵循类似的约定.但是,我无法弄清楚如何根据宏中收到的令牌实现包含文件.
归档时间: |
|
查看次数: |
1661 次 |
最近记录: |