+ -
当前位置:首页 → 问答吧 → 一个C问题 求助

一个C问题 求助

时间:2010-08-31

来源:互联网

如下:

#define SECCLASS_PROCESS   0x00000100UL

void fuck(u32 arg1,...)
{

}

现在的问题是
SECCLASS_PROCESS传递给 fuck(SECCLASS_PROCESS,...) 函数
在fuck()中是看不到SECCLASS_PROCESS这个东西
只知道有arg1
现在我想通过传递的参数arg1
在fuck()中打印出“SECCLASS_PROCESS”这个字符串,
而不是SECCLASS_PROCESS的值
请问大仙们如何实现,或者是否已有这样的函数
先谢过!

作者: kitifaye   发布时间: 2010-08-31

宏在编译后就替换掉了,如果你真的想要输出,你就在开个字符串,将宏的值和宏名进行映射就行了

作者: daybreakcx   发布时间: 2010-08-31

回复 daybreakcx


    能不能详细指点一下,谢谢

作者: kitifaye   发布时间: 2010-08-31

比如你开个数组叫做name
char name[N][M]={......,"SECCLASS_PROCESS",......}这样,然后SECCLASS_PROCESS的位置坐标就是宏的数值,我是这个意思,你得到了0x100就printf("%s\n", name[arg1]);

作者: daybreakcx   发布时间: 2010-08-31

回复 daybreakcx


    谢谢。
我遇到问题就是它定义的数值有重复的,所以找不到原来宏名是哪个了
不然也懒得想来这个方法了
列一下它的定义
#define COMMON_IPC__CREATE                               0x00000001UL
#define COMMON_IPC__DESTROY                              0x00000002UL
#define COMMON_IPC__GETATTR                              0x00000004UL
#define COMMON_IPC__SETATTR                              0x00000008UL
#define COMMON_IPC__READ                                 0x00000010UL
#define COMMON_IPC__WRITE                                0x00000020UL
#define COMMON_IPC__ASSOCIATE                            0x00000040UL
#define COMMON_IPC__UNIX_READ                            0x00000080UL
#define COMMON_IPC__UNIX_WRITE                           0x00000100UL
#define FILESYSTEM__MOUNT                         0x00000001UL
#define FILESYSTEM__REMOUNT                       0x00000002UL
#define FILESYSTEM__UNMOUNT                       0x00000004UL
#define FILESYSTEM__GETATTR                       0x00000008UL
#define FILESYSTEM__RELABELFROM                   0x00000010UL
#define FILESYSTEM__RELABELTO                     0x00000020UL
#define FILESYSTEM__TRANSITION                    0x00000040UL
#define FILESYSTEM__ASSOCIATE                     0x00000080UL
#define FILESYSTEM__QUOTAMOD                      0x00000100UL
#define FILESYSTEM__QUOTAGET                      0x00000200UL
#define DIR__IOCTL                                0x00000001UL
#define DIR__READ                                 0x00000002UL
#define DIR__WRITE                                0x00000004UL
#define DIR__CREATE                               0x00000008UL
#define DIR__GETATTR                              0x00000010UL
#define DIR__SETATTR                              0x00000020UL
#define DIR__LOCK                                 0x00000040UL
#define DIR__RELABELFROM                          0x00000080UL
#define DIR__RELABELTO                            0x00000100UL
#define DIR__APPEND                               0x00000200UL
#define DIR__UNLINK                               0x00000400UL
#define DIR__LINK                                 0x00000800UL
#define DIR__RENAME                               0x00001000UL
#define DIR__EXECUTE                              0x00002000UL
#define DIR__SWAPON                               0x00004000UL
#define DIR__QUOTAON                              0x00008000UL
#define DIR__MOUNTON                              0x00010000UL
#define DIR__ADD_NAME                             0x00020000UL

作者: kitifaye   发布时间: 2010-08-31

额,根据传入的数值无法区分对应的宏,那么对应到具体的宏名也就无从谈起了,除非你加参数

作者: daybreakcx   发布时间: 2010-08-31

相关阅读 更多

热门下载

更多