[开发工具] C语言的结构方法模式

[复制链接]
622|0
 楼主| AdaMaYun 发表于 2024-3-12 08:32 | 显示全部楼层 |阅读模式



如果你在学习 C 语言之前,学习过更有特色的语言,可能会发现很难将这些知识应用到 C 语言的学习中。例如,面向对象编程常见的一个概念:结构方法,即函数接受指向结构的指针,并通过指针修改结构或获取属性:

  1. typedef struct {
  2. int x;
  3. int y;
  4. } vec2;
  5. void vec_add(vec2 *u, const vec2 *v) {
  6. u->x += v->x;
  7. u->y += v->y;
  8. }
  9. int vec_dot(const vec2 *u, const vec2 *v) {
  10. return u->x * v->x + u->y * v->y;
  11. }

你无法扩展结构或实现类似于面向对象的功能,但采用这种思路来思考问题很有用。

const
以 const T 的形式声明类型 T 的变量或参数,则表示这个变量或参数不能被修改。这意味着,不能赋值,而且如果 T 是指针或数组类型,也不能被修改。

你可以将 T 转换为 const T,但反之不行。

设置函数的指针参数默认为 const 是一个好习惯,只有确实需要修改这些变量时再省略 const。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

308

主题

2692

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部