Что делает компилятор, когда мы определяем функцию? И является ли имя функции указателем? Или, может быть, это что-то еще.
Хотел бы я знать что-нибудь об именах функций.
Это просто идентификатор. Всякий раз, когда он используется в большинстве выражений, он «распадается» до указателя на функцию, точно так же, как имя массива при использовании в большинстве выражений «распадается» до указателя на первый элемент.
Я думаю, это хороший вопрос. Мы всегда должны спрашивать себя, что представляют собой вещи, которые мы используем, и интересоваться, как они работают внутри.
Что означает имя функции в C
Имя функции обозначает функцию.
Что делает компилятор, когда мы определяем функцию?
Компилятор запоминает имя функции и генерирует код для ее реализации. Он также запоминает информацию из объявления функции, такую как тип возвращаемого значения и типы параметров, если использовалась форма-прототип.
И является ли имя функции указателем? Или, может быть, это что-то еще.
Имя функции обозначает функцию.
Когда имя функции используется в выражении, оно автоматически преобразуется в указатель на функцию, за несколькими исключениями, обсуждаемыми ниже. Кроме того, фактически единственное использование имени функции — это указатель на функцию. Из-за этого программист может думать об имени функции как об указателе, но на самом деле это не указатель.
Тот факт, что оператор вызова функции принимает указатель на функцию, является причиной того, что мы можем использовать указатели для функций, как в double (*p)(double) = sin; printf("sin(.5) = %g.\n", p(.5));.
Как оператор вызова функции получает указатель на функцию? Можете ли вы рассказать мне что-нибудь об этом?
Стоит отметить, что параметры функции функционального типа преобразуются в указатели на функции. Это int(int()) эквивалентно int(int(*)())
Это просто имя (символ) для компилятора и компоновщика. In не будет присутствовать в вашем исполняемом файле\