如何在不查看源码的情况下确定宏的具体数值?

2026-04-11 22:540阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计403个文字,预计阅读时间需要2分钟。

如何在不查看源码的情况下确定宏的具体数值?

有時候會遇到這樣的情況:有一部份代碼用到了某個宏,但該宏定義的頭文件你沒有。這種情況下,如何判斷宏的價值呢?可以通過對應的源文件進行二進制反編譯來處理。例如:


有时候虽然有一部分代码,但比如这代码里用到了某一个宏,而这个宏定义的头文件你没有。

如何在不查看源码的情况下确定宏的具体数值?

这种情况下如何判断宏的值呢?

可以通过对对应的二进制文件反汇编来处理。

比如下面一段代码 test.c:

#include "foo.h" int foo(int i) { return 0; } int test(void) { foo(FOO); return 0; }


对应的foo.h定义了一个宏:

#define FOO 0xdeafdeaf



使用下面命令编译test.c:

$ arm-none-linux-gnueabi-gcc -o libtest.so test.c -shared


好,这时候假如不知道FOO的值。

阅读全文

本文共计403个文字,预计阅读时间需要2分钟。

如何在不查看源码的情况下确定宏的具体数值?

有時候會遇到這樣的情況:有一部份代碼用到了某個宏,但該宏定義的頭文件你沒有。這種情況下,如何判斷宏的價值呢?可以通過對應的源文件進行二進制反編譯來處理。例如:


有时候虽然有一部分代码,但比如这代码里用到了某一个宏,而这个宏定义的头文件你没有。

如何在不查看源码的情况下确定宏的具体数值?

这种情况下如何判断宏的值呢?

可以通过对对应的二进制文件反汇编来处理。

比如下面一段代码 test.c:

#include "foo.h" int foo(int i) { return 0; } int test(void) { foo(FOO); return 0; }


对应的foo.h定义了一个宏:

#define FOO 0xdeafdeaf



使用下面命令编译test.c:

$ arm-none-linux-gnueabi-gcc -o libtest.so test.c -shared


好,这时候假如不知道FOO的值。

阅读全文