阅读建议学习C的基础知识

时间:2010-01-20 17:32:28

标签: c function

我现在真正潜入我的操作系统项目,名为ForestOS,但现在我需要深入研究C的一些简单和基本的东西。现在我在使用正确的变量时遇到很多问题,功能

我想要的资源只讨论变量,函数以及如何在没有标题的情况下开发(stdio.hmath.h以及所有其他资源)。

4 个答案:

答案 0 :(得分:13)

最佳起点可能是书The C Programming Language

  

这本书是C编程语言发展和普及的核心,至今仍被广泛阅读和使用。

答案 1 :(得分:4)

guide to OS development建议CProgramming.com为最佳起点。有免费的教程,更多资源的链接以及所有内容。

答案 2 :(得分:3)

构建一个操作系统并不重要,我建议如果你“使用正确的变量和函数有很多问题”那么你可能会试图在你运行之前走路!

引用:

  

如何在没有标题的情况下开发(stdio.h,math.h和所有其他标题)。

我认为你实际上是指你想要在不使用标准库而不是“without headers”的情况下进行编码。头文件是C中模块化的固有文件;如果你没有使用标题,你的代码必须是一个单片模块。不要将标题混淆。

然而,即使这样,在编写“裸机”代码时也不需要使用标准库。您只需要一个没有操作系统依赖关系的库,并编写低级粘合代码,以使stdio和内存分配等工作在您的系统上。例如,这样的库是Newlib。如果您有标准的图书馆支持,它将使您的生活变得更加轻松。

答案 3 :(得分:2)

您只需要标题来提供函数和外部变量的声明。

可以删除头文件并在翻译单元(a.k.a.源文件)中提供声明。尽管可能,但不建议这样做。

以下是没有头文件的合法C程序示例:

/* Forward declaration of main(). */
int main(void);

/* Definition for main() function. */
int
main(void)
{
  return 13; /* 42 is such an overrated number. */
}

使用头文件的一些原因是:代码/打字减少和单点维护。如果两个模块需要相同的结构声明,将它放在头文件中将减少键入(您只需将#include包含在两个文件中,而不是将其复制到两个文件中)。此外,如果您需要更改任何声明,如果它被复制,您将不得不搜寻所有副本并更改每个实例,而不是在头文件中进行一次更改。

对于标准头文件,例如math.hstdio.h,如果您不需要它们,请不要包含它们。操作系统不应需要stdio.h,但可以使用math.h。大多数标准头文件对代码大小没有贡献;只到编译时。

我强烈建议您专注于操作系统的正确性,不要担心头文件等琐事。在您的操作系统正常工作并且运行正常后,请继续修剪脂肪。