C语言(一)

本文探讨了C语言中的类型含义,包括数据在内存中的大小、字段排列以及如何通过sizeof操作符查看。同时,阐述了C语言的编译过程,强调了其弱类型特性以及对类型检查的有限度。另外,提到了函数的作用域,特别是static关键字如何影响函数的作用域,以及C语言如何允许程序员自定义数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在C语言中一个类型到底代表什么意思, 在C语言中一个类型到底代表什么意思呢?

  1. 数据在内存中有多大, 数据的长度, sizeof 查看
  2. 如果是一个复合类型的数据, 那么它里面就会有许多字段, 它的字段是如何排列的
  3. 对于两个类型, 它们都有相同的字段, 但是它们字段所指向的数据可能不同, 导致实际的两个字段, 所形成的对象在内存里的类型是不一样, 即数据排列的密度有很大的差距。

我们知道C语言是编译性语言, 首先要编写源代码, 之所以把含有源代码的源文件用C的编译器编译成目标代码, 然后进行链接从而得到可执行程序

所以在C文件可运行之前, 必须要经过编译的过程, C文件在编译器编译的时间段, 我们称作程序的编译时, 当得到可运行程序, 去运行它时, 我们称作程序的运行时。

在C程序编译的时候, 编译器并不会对C语言中的类型进行太多的检查, C语言是显示声明类型, 而且是弱类型甚至是不检查的编程语言, 这是因为C语言的时代, 资源比较匮乏, 所以过多的检查机制会对资源损耗。

对于C语言的函数我们还要考虑它的作用域, 所谓作用域就是它起作用的范围, 在默认的情下, C语言会把一个程序中所有的函数当作是全局的。

这项工作是由编译器自动帮助你完成的, 但是C语言可以提供一个机制让你绕过这个限制,

比方说可以使用static关键字来修饰一个函数, C语言中static关键字非常的妙、即可用来修饰函数又可以修饰变量
当修饰一个函数的时候, 函数的作用域就发生了变化, 从原来的全局作用域被约束到它所在的文件中。

我们知道C编译器以文件作为编译的基本单位, 所以此时函数的作用域粒度被限制到一个编译单元, 这对C语言的使用有重大的影响,

C语言本身没有提供任何的数据结构, 所以需要我们自已去打造一个一个自已的库;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值