2011-07-02 69 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 *'使用,我錯了? –