如何解决如何“ #define”结构域或结构名
|| 我想做类似的事情: int desc = -1;
if ( DB_DBM_HSEARCH == 1 ) { desc = db->fd } else desc = db->dbm_pagf;
由于编译器错误,这是不可能的。
是否可以做类似的事情:
#define DESC db->fd //and then
int desc = DESC;
?解决方法
当然。尽管我认为这是使用宏函数执行此操作的一种更合适的方法(因此您可以根据需要更改变量名)。假设
DB_DBM_HSEARCH
是一个宏:
/* conditionally define the macros */
#if DB_DBM_HSEARCH == 1
# define DESC(db) (db)->fd
#else
# define DESC(db) (db)->dbm_pagf
#endif
/* then to initialize */
int desc = DESC(db);
,您可以但不要使用宏来执行此类操作,而只需使用命名良好的变量即可。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。