У меня есть проблемы с пониманием встроенных функций GCC и очень смущены.
-
В чем разница между библиотечной функцией и встроенной функцией?
-
Есть ли что-то, что может сделать встроенная функция, но функция библиотеки не может?
-
Можно ли написать библиотечную функцию, которая выполняет ту же задачу, что и встроенная функция printf? Как я могу указать тип входных параметров (% f, float или double)?
-
Машинные инструкции встроенных функций GCC не хранятся в библиотеке, правильно? Где они?
-
При компоновке, как вы можете контролировать, куда поместить эти встроенные функциональные коды?
-
Почему иногда я могу вызывать сообщения об ошибках типа "undefined ссылка на __builtin_stdarg_start" при компоновке
// main.c #include <stdio.h> int main(void) { printf("hello world!\n"); return 0; }
gcc -c main.c, nm показывает, что в main.o нет символа printf. (только main (T) и puts (U)), почему?