简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
🍉🍉🍉文章目录🍉🍉🍉
- 🌻1.前言
- 🌻2.C95标准介绍
- 🌻3.代码实例
- 🐓3.1 函数重载
- 🐓3.2 长整型类型 (long long)
- 🐓3.3 动态内存分配的更安全形式 (calloc 和 realloc)
🌻1.前言
本篇目的:C95之重要特性及用法实例
🌻2.C95标准介绍
- C95标准,通常指的是ISO/IEC 9899:1995,这是一个对C90标准的修订版,它并不像C99标准那样引入了大量新特性,而是主要关注于技术上的修正和小的改进。C95标准并没有被广泛认可,而且在正式文档中并不存在“C95”这样的称呼,它通常被称为C90 Amendment 1或者C95修正版。以下是对C95标准的一些介绍:
- 技术修正:C95标准主要对C90标准中的技术错误进行了修正,这些修正可能涉及到了标准的文本描述、示例代码或者一些细节上的规定。这些修正旨在提高标准的准确性和一致性。
- 小的改进:除了技术修正之外,C95标准还包含了一些小的改进,但这些改进并不像C99标准那样引入了全新的编程范式。例如,它可能包括对某些标准库函数的微小调整或者对某些语言特性的澄清。
- 国际化支持:C95标准开始关注国际化问题,引入了一些对多字节字符和宽字符的支持。这为后续C99标准中更全面的国际化支持奠定了基础。
- 库函数的增强:C95标准对标准库进行了一些增强,包括新增了一些库函数和对现有库函数的改进。这些增强旨在提供更丰富的功能,使得C语言编程更加便捷。
- 兼容性:尽管C95标准进行了一些小的改动,但它仍然保持了与C90标准的高度兼容性。这意味着,大多数符合C90标准的代码不需要修改就可以在C95标准的编译器上编译。
- 缺乏广泛认可:C95标准并没有得到像C90和C99标准那样的广泛认可。许多编译器厂商并没有完全实现C95标准,而是直接等待并实现了后来的C99标准。
- 标准化过程:C95标准的制定过程相对较快,它并没有像C99标准那样经过长时间的讨论和审查。因此,它的影响力和普及程度都不及C90和C99标准。
需要注意的是,C95标准并不是一个独立的官方标准,而是一个对C90标准的修正。因此,它并没有自己的官方编号,通常所说的“C95”只是非正式地指代1995年发布的这个修正版。
- C95标准是对C90标准的一个小幅度更新,它主要包含了技术修正和小范围的改进。虽然它并没有引入太多新特性,但在C语言标准化的进程中,C95标准仍然扮演了一个过渡的角色,为后续C99标准的推出奠定了一定的基础。
🌻3.代码实例
🐓3.1 函数重载
#include <stdio.h>int add(int a, int b) {return a + b;
}float add(float a, float b) {return a + b;
}int main() {printf("Sum of integers: %d\n", add(1, 2));printf("Sum of floats: %.2f\n", add(1.1f, 2.2f));return 0;
}
🐓3.2 长整型类型 (long long)
#include <stdio.h>int main() {long long int number = 9223372036854775807LL; // 最大长长整型printf("Long long integer: %lld\n", number);return 0;
}
🐓3.3 动态内存分配的更安全形式 (calloc 和 realloc)
#include <stdio.h>
#include <stdlib.h>int main() {int* arr = (int*)calloc(5, sizeof(int));for (int i = 0; i < 5; i++) {arr[i] = i * i;}for (int i = 0; i < 5; i++) {printf("%d ", arr[i]);}printf("\n");int* new_arr = realloc(arr, 10 * sizeof(int));for (int i = 5; i < 10; i++) {new_arr[i] = i * i;}for (int i = 0; i < 10; i++) {printf("%d ", new_arr[i]);}printf("\n");free(new_arr);return 0;
}