【问题标题】:Getting Started in CC语言入门
【发布时间】:2009-09-13 19:31:56
【问题描述】:

我知道有很多 C 入门教程。但是我很难应用这些知识。我开始学习语言的方式一直是编写脚本。当然 C 不是脚本语言。

我的问题与其说是学习 C,不如说是关于如何开始应用 C。太好了,我可以编写温度转换器或基于文本的 rpg。也许是因为在 python 中我只是在 somefile.py 和 chmod +x somefile.py && somefile.py 中编写代码。对于 C,我真的没有等效的过程。每次我读到 C 时,它都会使用不同的标志进行不同的编译过程。当您已经使用高级动态脚本语言时,有人可以给我一些关于应用 C 的最佳方法的明确方向吗?

顺便说一句。 ..我问的是C而不是C++。

我通常使用 OpenSuse 11 或 Ubuntu 9.04。 “我使用什么编译器”是问题的一部分。在python中没有选择它只是“python somefile.py”与php或ruby相同。我不知道有选择。

【问题讨论】:

  • 如果你在unix环境中编码,编译你需要的只是:gcc -o myprogram myprogram.c
  • 您想使用什么操作系统和C编译器?我们必须知道这一点才能为您提供最佳实践建议。
  • 对于大型项目,标志在 Makefile 中指定,因此您不必在每次编译时都重复十几个步骤。你只需运行“make”就可以了。当您的程序变得足够大以至于可以将它们拆分为库时,我建议您了解一些有关 Makefile 的知识。顺便说一句,另一个流行的构建工具是 SCons
  • 维基百科有一个适用于简单程序的示例 Makefile - en.wikipedia.org/wiki/Makefile#Example_makefile
  • 当您在 Linux 系统上工作时,您应该已经拥有基本的 GNU 工具集(gcc、gdb、make 等);您不需要安装任何东西。 gcc.gnu.org 应该拥有开始构建 C 程序所需的一切。请注意,gcc 提供了一些不被普遍支持的扩展(内联汇编、嵌套函数);仔细阅读 gcc 文档。

标签: c


【解决方案1】:

写w.c

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    for (i = 0; i < argc; ++i) {
        printf("Param %d is '%s'\n", i, argv[i]);
    }
    return 0;
}

并编译

gcc -Wall -o w w.c

运行

./w

【讨论】:

  • +1 表示 -Wall。我还会将 -Wextra 和 -std=c99 添加到组合中。
【解决方案2】:

正如rogeriopvl 在评论中所写,编译过程非常简单。只需在 somefile.c 中编写代码并

gcc -o somefile somefile.c && ./somefile

(如果您使用的是 GCC,如果不是,您选择的编译器可能会被类似地调用)除非/直到您开始进入更复杂的项目,否则它几乎不会比脚本语言复杂。 (嗯......好吧,一旦你超越了基础知识,你可能需要链接一些库。但仍然不是什么大问题。)

事实上,我确实为自己编写了一个小 shell 脚本,它允许我使用 C 作为脚本语言。但是设置它的过程比你在这个阶段可能想要进入的过程要复杂一些——每次只运行编译器就更简单了。不过,如果您有兴趣,我可以查找说明(适用于 Linux)并将它们放在这里。

【讨论】:

  • 更好的是,如果您的程序不需要任何外部库或特殊标志(如果您刚刚开始,很有可能不需要),您可以写 make somefile at即使您没有Makefile,命令行和make 的隐式规则也会为您调用cc -o somefile somefile.c
【解决方案3】:

C 代码需要在程序运行之前进行编译。确切的过程因您正在使用的平台和编译器而异。

在大多数情况下,使用 IDE(例如 Visual studioEclipseMonoDevelop 和其他一堆)将为您完成令人讨厌的工作,因此您只需按下按钮或单击一个图标。下载其中一个

【讨论】:

    【解决方案4】:

    我在学习 C 时问过自己这个问题。这里的问题,如果我可以说这是一个问题,就是 C 可以在广泛的应用程序和广泛的环境中使用,其中一个与它自己的 IDE 或编译器和库。一些可以将 C 用于真实员工的示例。

    嵌入式软件。在这种情况下,您可能会使用一些库。

    网络编程(看看this book

    设备驱动程序开发。

    库(适用于 Linux/Windows 和其他操作系统)

    这个列表是无穷无尽的。

    不知道我是否可以帮助您解决这个问题。如果您提供有关您感兴趣的内容的更多详细信息,可能会有所帮助

    祝你好运

    【讨论】:

      【解决方案5】:

      我可以在这里给出的最佳建议是找到一个您感兴趣的主题,看看您是否可以制作一个程序来做您想做的/协助做您想做的/添加功能以满足您的选择,然后开始编码。

      这会给你做一些你感兴趣的事情,同时做一些直接影响它的事情。它应该提供继续学习过程的动力。

      【讨论】:

        【解决方案6】:

        我目前在 Linux 内核模块中使用 C 语言很多,而且对 C 语言还比较陌生。我发现这很有价值,我认为这对这种爱好很重要'温度转换器或基于文本的 rpg' 类型编程。

        我也很难找到编程技能的应用。我认为挑战和奖励的平衡很重要。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-19
          • 2021-04-03
          • 2021-11-24
          • 1970-01-01
          • 2022-11-15
          • 1970-01-01
          • 1970-01-01
          • 2021-02-21
          相关资源
          最近更新 更多