我有一种记录程序的地址在一个阵列编译时GCC错误:“所需的左值作为分配的左操作数”与函数指针
void* lpProcAddress[5];
typedef unsigned long (*MyFunction_TYPE) (void*);
#define MyFunctionInArray ((MyFunction_TYPE) lpProcAddress[0])
unsigned long AnyFunction (void* lpPointerToAny)
{
/* Some Code */
return 0;
}
int main()
{
MyFunctionInArray =
AnyFunction; // Displays: "error: lvalue required as left operand of assignment"
}
GCC显示一个C代码“错误:左值需要为左操作数的分配“。 我该如何解决这个问题? 为了我的目的,我无法直接调用AnyFunction()。
NO,分配给lpProcAddress [0]直接工作,但我还需要从数组调用过程。如果我没有MyFunction_TYPE定义MyFunctionInArray,我不能通过编写MyFunctionInArray(param)轻松调用它,或者我必须定义两次相同的“函数”,一次使用MyFunction_TYPE,一次不使用。它使我恼火,因为它工作在GCC的旧版本上(我被迫改变) – Julien 2011-03-06 13:01:53