路漫漫其修远

大早上被一条短信惊醒,赶紧从被窝里爬起来。开始新的征程。

        好像突然明白了一个道理,“这些东西都是前人已经做好的,没有任何创造性,我们所需要做的就是静下心来,慢慢研究。”这是出自《自己动手写操作系统》里的一句话,感觉非常的有道理,我好像是个特别畏惧困难的人,遇到了不会的,或者在学习的时候总是不求甚解,草草了事,导致到了动真格的时候往往卡壳,因为没有真正的理解。感觉这些东西好难,好枯燥,学着没意思,现在看来,是因为自己没有理解到他们的用处吧。那种创造性的快感谁都想拥有的。

我总在想,人生总有一死,干什么都是白搭,这导致了我的消极的生活态度,做什么都无所谓。而且我太容易收到外界的干扰了。别人的想法很容易影响到我。有时候越是克制却越难克制。强迫自己学习真的是件痛苦的事,与其苦思冥想这个东西有什么乐趣,倒不如马上去做,没准真的能找到一些乐趣呢!

依稀还记得高一二的时候,由于自己觉得能考上重点却没有,所以到了学校就格外的努力,每个周末都在学习,那个时候对于知识的掌握真的是到了一个如火纯情的时候了,那种感觉到现在都不会忘记。那个时候我真的是为了梦想没有丝毫分心的在学习啊!

慢慢的长大,慢慢的老去,我不要痛苦的过自己的青春年华,行动起来吧,这种过程到后来成就大器的时候我知道也是一种美丽的回忆的!

加油!

### 模块中内部函数与外部函数的概念及区别 #### 1. 内部函数 内部函数是指仅限于在定义它的源文件内使用的函数。通过在函数定义前添加 `static` 关键字来声明一个内部函数[^2]。这种函数的作用域被限制在当前源文件中,其他文件无法直接调用它。 - **定义**:在 C 语言中,内部函数通过 `static` 关键字进行修饰,例如: ```c static int add(int a, int b) { return a + b; } ``` 在此示例中,`add` 函数是一个内部函数,只能被同一源文件中的其他函数调用。 - **使用场景**:内部函数通常用于封装实现细节,避免与其他模块的函数名称冲突,同时隐藏不必要的实现逻辑[^1]。 #### 2. 外部函数 外部函数是指可以被其他源文件调用的函数。如果在函数定义或声明时省略了 `static` 关键字,则默认为外部函数[^2]。此外,可以通过显式地使用 `extern` 关键字来声明一个外部函数,以便在其他文件中引用该函数。 - **定义**:外部函数的定义和声明没有 `static` 修饰符,或者显式使用 `extern` 关键字。例如: ```c // 文件1.c int subtract(int a, int b) { return a - b; } // 文件2.c extern int subtract(int a, int b); void example() { int result = subtract(10, 5); } ``` 在这个例子中,`subtract` 函数被声明为外部函数,因此可以在其他文件中调用它。 - **使用场景**:外部函数通常用于提供公共接口,使得其他模块能够调用这些函数完成特定功能[^1]。 #### 3. 区别 - **作用域**:内部函数的作用域局限于定义它的源文件,而外部函数的作用域扩展到整个程序,可以被其他文件中的代码调用[^2]。 - **关键字**:内部函数使用 `static` 关键字声明,而外部函数通常使用 `extern` 或省略任何关键字。 - **命名冲突**:内部函数可以避免与其他文件中同名函数的冲突,而外部函数需要确保全局唯一性以避免冲突[^1]。 #### 4. 示例代码 以下是一个包含内部函数和外部函数的模块示例: ```c // 文件1.c #include <stdio.h> // 内部函数 static int multiply(int a, int b) { return a * b; } // 外部函数 int calculate(int a, int b, char operation) { if (operation == '*') { return multiply(a, b); // 调用内部函数 } else if (operation == '+') { return a + b; } return 0; } // 文件2.c #include <stdio.h> extern int calculate(int a, int b, char operation); void main() { int result = calculate(3, 4, '*'); printf("Result: %d\n", result); } ``` 在这个例子中,`multiply` 是一个内部函数,只能在 `文件1.c` 中使用,而 `calculate` 是一个外部函数,可以在 `文件2.c` 中调用。 #### 5. 总结 内部函数和外部函数的主要区别在于作用域和可见性。内部函数通过 `static` 关键字限制其作用域,从而减少模块间的耦合;外部函数则通过 `extern` 或默认规则提供跨文件调用的能力,支持模块间协作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值