Заголовочные файлы C, которые включены в вашу ОС, компилятор или библиотеку времени выполнения C, на самом деле не предназначены для использования человеком.Вы, конечно, можете их прочитать, и вы можете многому научиться, пытаясь понять их, но они в первую очередь предназначены для использования компилятором.Как вы видели в этих примерах, они имеют тенденцию зависеть от множества специфичных для компилятора функций (привычка, которую вы должны стараться избегать в своем собственном коде).
Они также имеют тенденцию иметь много #ifdef
s, поэтому одни и те же заголовки могут использоваться в разных системах.
Если вы просто хотите узнать, например, как использовать функцию sin
, вам лучше прочитать документацию по вашей системе.Например, в моей системе Ubuntu man sin
показывает это (среди прочего):
SYNOPSIS
#include <math.h>
double sin(double x);
float sinf(float x);
long double sinl(long double x);
Link with -lm.
_CRTIMP
и __cdecl
Возможно, это важно для компилятора, но как программист вы можете спокойно их игнорировать.
Если вы ищете исходный код, который реализует функцию sin
, она может или не может бытьбыть доступным.Это может быть написано на языке, отличном от C;даже были системы, в которых это реализовано аппаратно (хотя небольшая оболочка все еще требовалась).
В другом ответе содержится ссылка на одну реализацию, но, вероятно, она не используется в вашей системе.
И вам не нужно слишком зацикливаться на том, как реализована функция sin
.Это, безусловно, полезно знать, но вам не нужна эта информация для написания кода, который ее использует.(Я абсолютно не не хочу препятствовать любопытству.)