Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';我已经读过C编程语言了,我该怎么办?_C - Fatal编程技术网

I';我已经读过C编程语言了,我该怎么办?

I';我已经读过C编程语言了,我该怎么办?,c,C,我读过《C编程语言》,现在该怎么办?在C语言中有什么重要的东西是书中遗漏的吗?我对Linux方面的开发特别感兴趣,那么我应该学习Linux中的C语言吗?(我已经知道一些基本知识) 如果这个问题看起来有点笼统,我很抱歉,但我有点不知道下一步该学什么。我将从实际编程开始。有好的问题需要解决,这将帮助你更好地理解语言。从那以后,您可以开始学习Linux特定的C编程,但一定要先学习C基础知识。如果您对Linux开发感兴趣,下一步可以去读这些书(它们是关于一般的UNIX类开发,但它们几乎都适用于Linux

我读过《C编程语言》,现在该怎么办?在C语言中有什么重要的东西是书中遗漏的吗?我对Linux方面的开发特别感兴趣,那么我应该学习Linux中的C语言吗?(我已经知道一些基本知识)


如果这个问题看起来有点笼统,我很抱歉,但我有点不知道下一步该学什么。

我将从实际编程开始。有好的问题需要解决,这将帮助你更好地理解语言。从那以后,您可以开始学习Linux特定的C编程,但一定要先学习C基础知识。

如果您对Linux开发感兴趣,下一步可以去读这些书(它们是关于一般的UNIX类开发,但它们几乎都适用于Linux)

从开始。

做书本练习!
阅读太少了。

如果你不打算使用它,学习东西有什么用呢。制作一个程序

然后当你发现你不知道如何做某事时,查一下或者在这里问一下


学习的最好方法就是去做。

很多答案都提到实际编程,如果你还没有开始,我会从这个开始

我还建议阅读质量代码。读一读,说一句,它的实现。不要担心在第一次通过时不理解所有内容。有很多小东西,成语。。。即使事先没有读过正在实现的算法(顺便说一句,这也很有趣),你也能学会

如果您对程序验证感兴趣,请看一看,这是一种用于编写(和验证)C函数契约的规范语言。

这本书真的很好。它基本上涵盖了所有特定于操作系统的东西(特定于Unix和Linux),而C规范没有涵盖这些东西


这本书涵盖了信号、线程、进程间通信、网络编程等内容。

了解C很酷。学习语言/语法之外的另一个方面怎么样

让我印象深刻的两件事是:

  • 套接字编程。编写一个基本的聊天客户端/服务器。或者一个小的文件传输程序
  • 多重编程。使用进程(
    fork()
    )等,这将非常适合于套接字)或
  • pthreads。学习多线程编程,以及是什么使它们与进程不同,从而并行完成任务

这两个(套接字、多编程)都是单个项目的理想选择。您可以编写一个网络程序(如shell),然后修改它以处理多个连接—利用进程/线程。

除了在K&R中进行练习外,我还将从复制一组常用的linux命令开始。这有两个主要原因

  • 有各种复杂程度的Linux/Unix命令。你可以从简单的开始,随着技能的提高继续前进

  • 您可以将程序的输出和运行时间与实际的进行比较,以检查正确性和效率


  • 每次我学习一种新的编程语言时,我都会复制一些linux命令,以巩固我用这种语言解决实际问题的能力。

    阅读编程知识是一种很有帮助的入门方法,但在你开始编程之前,你所读到的东西在“啊哈!”那一刻不会真正结合起来。找到一个你需要解决的任务,这个任务可以通过编写一个程序来解决(即使这个任务已经解决了很多次),然后编写一个程序来完成它。程序不必由漂亮或高效的代码组成,结果也不必有吸引力。你做的编程越多,你会做得越好,你的程序也会越好。

    如果你想深入研究Linux黑客攻击,请阅读前面提到的“UNIX环境中的高级编程”。但在我看来,阅读这本书需要一些经验

    我推荐一些关于编程工具(用于Linux但不限于Linux)的书籍,如svn、diff、打包系统:

    • -关于仅使用开源工具创建视频租赁服务的好书分步教程。不幸的是,这不仅仅是关于C语言,还需要一些其他语言的知识
    • -为Linux程序员和用户提供大量信息

    • -为程序员准备了一本关于Linux工具的好书

    • 在我看来,每一个程序员都应该读这本书,里面有一点源代码,有很多哲理(有些人可能不喜欢),但最重要的是它展示的很漂亮 Unix设计,并演示如何在自己的程序中遵循它

    • 数据处理:使用Java、Python等解决日常问题]-这本书不是关于C或Linux的,但它有助于巧妙地解决数据处理任务

    编写一个程序!:-)练习7-3(第156页):修改
    minprintf
    。。。让它接受
    %*f
    是-如果你“做”了C书-你会知道一切。几年前不是有一本C答案书为练习提供了解决方案吗?ProjectEuler很棒,但是如果你手头没有一个好的任意精度的算术库,也许C就没有那么多了。当然,不使用这样的库,它们也可以在C中求解,但通常它们都是不必要的烦人。