구조체 my_struct에는 compute()라는 함수 포인터가 있습니다. 다음과 같이 선언됩니다 :구조체 함수 포인터 오류
struct my_struct
{
double (*compute) (double input);
}
별도의 파일에서 다른 하나를 가리킬 수 있도록 해당 구조체를 초기화합니다.
error: expected '=', ',', ';', 'asm', or '__attribute__' before '.' token
내가 사용했던 배의 구조체의 많은의 데이터 멤버 사용 :
static const struct my_struct data;
data.compute = ......
문제는 상관없이 내가, 내가 data.compute에 대한 다음과 같은 오류를 얻을 수있는 함수 포인터를 설정 무엇 없습니다 '.' 연산자,하지만 난 함수 포인터를 사용한 적이있다. 여기서 다른 뭔가가 필요합니까?
구조체를'const'로 정의 했으므로 표기법으로 작업해야합니다. 초기화 후에 만 초기화 할 수 있습니다. 그러나, 그것은 당신이 받고있는 것과는 다른 오류입니다.마치 '데이터'가 단순한 단어가 아닌 것처럼 행동합니다. 마치 매크로가 이상한 것으로 확장 된 것처럼 보입니다. 구조체 타입이 헤더에 선언 되었습니까? '}'다음에 세미콜론이 있습니다. 그렇죠? –
그래, const 문제가되지 않습니다. 나는 그것을 제거하려고했지만, 오직 같은 오류가 발생합니다. 당신이 말하고있는 마지막 부분을 어떻게 해결할 수 있을지 아십니까? – Bob
코드가 충분하지 않습니다. - MCVE ([MCVE])를 제공하지 않았습니다. 우리는 컴파일 할 수 있고보고있는 오류 (또는 유사한 오류)를 볼 수있는 코드가 없습니다. 헤더와 문제를 보여주는 최소한의 코드 집합이 필요합니다. 함수 안에'data.compute = ... '을 쓰고 있니? (_Hmmm : 나는 아닙니다. 당신은 초기화'... data = {...};'를 사용하거나 함수 내에서 할당을 이동해야합니다.) –