[英]C how to convert large list of defines to strings for comparison to user input string
我读了一个有趣的答案,关于如何使用巨型switch语句将错误代码列表从错误代码转换为错误字符串。 我有一个稍微不同的问题。
给定一个包含数千个寄存器定义的大型文本文件,即:
#define setup_register 0x01
我希望能够从命令行获取输入,如write setup_register 0xFF
。 然后在我的代码中,我将查找setup_register的地址(0x01)并写入它。
是否有C方式获取setup_register地址? 我想我可以解析文件并创建一个新文件,或者手动完成,但这意味着它必须在每次更改时完成。
setup_register
是C预处理器符号。 如果它是宏参数 ,则可以对这些符号进行字符串化。 否则,据我所知,它无法完成。
我会用你最喜欢的脚本语言(Ruby,Python,Perl)编写一个脚本,它寻找“#define [A-Za-Z _] + 0x [0-9a-fA-f] +”形式的行,然后解析名称并生成具有字符串和相应值的结构数组。 散列字符串,将结构放在哈希表中,你就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.