C语言使用llabs 函数没写头文件为啥不会报错
时间: 2024-05-23 11:12:26 浏览: 15
在 C 语言中,如果没有包含头文件,编译器会将函数默认为 extern int 函数名(); ,即默认为函数返回类型为 int。这意味着,如果在程序中调用一个函数而没有包含头文件,编译器会默认为该函数返回类型为 int,而不是实际类型。因此,如果使用 llabs 函数但没有包含 stdlib.h 头文件,编译器会默认为 int llabs(long long) 函数。虽然这样做可能会导致问题,但编译器不会抛出错误信息。因此,我们应该总是包含所需的头文件以确保程序的正确性和可移植性。
相关问题
用c语言
以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 计算最大公约数(递归实现)
long long gcd(long long a, long long b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
long long a, b, lcm;
scanf("%lld %lld", &a, &b);
lcm = llabs(a * b) / gcd(llabs(a), llabs(b)); // 利用辗转相除法求 a 和 b 的最大公约数
printf("%lld\n", lcm);
return 0;
}
```
解释一下:输入两个整数 a 和 b,然后利用 C 语言自带的 abs() 函数求出绝对值,再利用自己编写的 gcd() 函数求出它们的最大公约数,最后用 a 和 b 的乘积除以最大公约数,即可得到它们的最小公倍数 lcm。
stdlib.h包含哪些函数
stdlib.h 是 C 标准库中的一个头文件,包含了许多常用的函数。常见的函数有:
- malloc、calloc、realloc、free:动态内存分配和释放
- abort、exit:异常退出程序
- system:执行系统命令
- rand、srand:生成随机数
- qsort:快速排序
- abs、labs、llabs:求绝对值
- atof、atoi、atol、atoll:将字符串转换为浮点数或整数
- getenv、putenv:获取或修改环境变量
- bsearch:在有序数组中进行二分查找
- div、ldiv、lldiv:整数除法
- ...
此外,还有一些与操作系统相关的函数,如:
- system:执行系统命令
- getenv、putenv:获取或修改环境变量
- ...
以上只是部分常见函数,具体使用可以参考相关的文档或教程。