2011-07-02 34 views

回答

1
#include <stdint.h> 
#include <elf.h> 
#if UINTPTR_MAX == 0xffffffff 
#define Elf_Ehdr Elf32_Ehdr 
#define Elf_Phdr Elf32_Phdr 
#else 
#define Elf_Ehdr Elf64_Ehdr 
#define Elf_Phdr Elf64_Phdr 
#endif 
+0

为什么这是错的? 'void * p; .. initilize p omited ..p =(Elf32_Ehdr *)p;',当我尝试引用'p-> e_ident'时,得到了一个警告:'warning:dereferencing'void *'pointer'。为什么演员不工作? –

+0

声明'p =(Elf32_Ehdr *)p;'完全没有任何操作。它将'p'的值转换为'Elf32_Ehdr *'类型的表达式,然后将结果赋给'p',后者隐式转换回'void *'类型。 –

+0

为了将'void *'作为'Elf32_Ehdr *'使用,我错了? –