первая публикация здесьСтранный поплавок? Указатель на поплавок в структуре
В настоящее время я переношу код для встроенного устройства. В принципе, все, что нужно для работы с новым компилятором (AVR-GCC) из устаревшего существующего компилятора
Я столкнулся с этой странной (по-моему!) Переменной в структуре. Я не могу понять, что это такое с круглыми скобками. Он находится в структуры, которая используется для исходных значений:
float (*tc)(float value);
Мои IDE основные моменты «значение» в качестве ключевого слова компилятора, так же, как «поплавок», так что я не знаю, если это AVR-GCC конкретнее?
Это затем используется в функции, имеющей поплавок аргумент называется «чтение», и она пытается вернуть следующее:
return (raw[rCN3].tc)(reading);
Линия выше на самом деле вызывает программу, чтобы попытаться получить доступ из ограничивающей памяти ,
Я еще не видел такой код, поэтому задавался вопросом, может ли кто-нибудь помочь мне его расшифровать? Он работал со старым компилятором, но вызывает проблему с AVR-GCC
Заранее спасибо. Alex
Это указатель на функцию. См. Http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work –
«Мое значение IDE подчеркивает« как ключевое слово компилятора »<- это не одно из C. Возможно, он использует тот же маркер для нескольких языков. –
BTW: в заявлении есть лишние скобки, 'return raw [rCN3] .tc (чтение);' будет достаточно. – wildplasser