大家都讨论C++ C的大牛们 来指导啊

时间:2022-10-01 05:34:34
我的C很不健全。。感觉不安全。 

嵌入式 正在入门,可是C基础比较差。求指导!!  damifeng8@gmail.com   我的google邮箱 。 膜拜……

21 个解决方案

#1


推荐楼主看看《编写安全代码》一书

#2


要方便底层的控制就很难做到绝对安全

比如说人人都说python、、lua、php、java、C#好用,但我家就觉得他们难用

为什么,我是搞安全,做底层的,加密算法我都会自己实现,二进制协议我都得自己打包

python、lua之类的脚本的卖点就是“无需关注细节,只要关心业务逻辑”,但我的工作需求导致我的 业务逻辑就是内存细节。如果给我的数组不是个byte[]而是个hash表,我根本就没法工作!

各种语言都有其适应的用途而已

#3


C就是最适合我的工作的语言,它直接提供了对内存的大部分细节操作,但也不能说所有,一些Intel指令集一句机器指令提供的功能用C反而啰嗦一堆,这就是为什么汇编语言也还有其用武之地的原因,目前编译器对于SSE等高级指令的使用能力太差了

#4


我就是觉得自己C水平不够,实力不够。其实对于编程我有兴趣,而且浓厚,最近写驱动程序的时候嘛,感觉心有余而力不足,不对,心也不余。对于代码结构的掌控,也就是架构,对于部分语法的使用,我糊涂的很,逛了一天csdn,感觉低端的问题都没有太多。我纯粹一个很上进的小白。直到嵌入式对C要求蛮高,毕竟我还要进行一段时间的Linux的学习,如果C太差了,那就没办法了。所以没有安全感。
引用 3 楼  的回复:
C就是最适合我的工作的语言,它直接提供了对内存的大部分细节操作,但也不能说所有,一些Intel指令集一句机器指令提供的功能用C反而啰嗦一堆,这就是为什么汇编语言也还有其用武之地的原因,目前编译器对于SSE等高级指令的使用能力太差了

#5


看我就是C小白。编程都困难。想入门C,现在这样的状况,我觉得还有很大差距,不能随心所欲的使用C,先不看它的效果如何,很多东西我都没见过,更别说使用了。
引用 1 楼  的回复:
推荐楼主看看《编写安全代码》一书

#6


老老实实学语法,之后再谈别的

#7


经常有人说基础不好,要学C++,却不好好学习最经典的:The C Program Language。

C语言都没学好,整天玩弄类,模板,设计模式能把C++的效率与方便优势发挥出来?

#8


膜拜大牛啊

#9


有良方赐教……么
引用 6 楼  的回复:
老老实实学语法,之后再谈别的

#10


单从语言上来说,C还是很简单的…………

没有什么特别复杂难以理解的概念,也没有隐藏太多的细节,不像C++

个人认为能够写出C程序后,再去看看C标准是有好处的


总的来说,语言只是工具,理解语言的关键在于知道每句语言会导致机器哪些动作

#11


引用 3 楼  的回复:
C就是最适合我的工作的语言,它直接提供了对内存的大部分细节操作,但也不能说所有,一些Intel指令集一句机器指令提供的功能用C反而啰嗦一堆,这就是为什么汇编语言也还有其用武之地的原因,目前编译器对于SSE等高级指令的使用能力太差了


从编译的角度来说,SIMD支持差这板子打在编译器身上还真是不服啊


本来语言层面对SIMD支持就差,很多架构都是以C库加嵌入汇编的形式提供支持,编译器就算是巧妇也做不了这无米之炊啊

而且相比SIMD,MIMD才是目前编译器关注的主要方向…………

#12


计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#13


单从C语言这块,我觉得书太多。目不暇接、之前的都有学过,可能语法方面欠缺很多。
引用 12 楼  的回复:
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#14


今天浏览了很多大牛的论坛,感觉C标准必须看的。只是不知道最新的标准又没有中文版的。有些编译环境不同。
引用 10 楼  的回复:
单从语言上来说,C还是很简单的…………

没有什么特别复杂难以理解的概念,也没有隐藏太多的细节,不像C++

个人认为能够写出C程序后,再去看看C标准是有好处的


总的来说,语言只是工具,理解语言的关键在于知道每句语言会导致机器哪些动作

#15


目前学的嵌入式,以后可能做linux系统方面的。不过也想写底层驱动。我该怎么努力呢?
引用 12 楼  的回复:
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#16


C语言的书经典的也就一本,The C Program Languae。200多页,再慢的速度3个月也看完了。

其它: C专家,C和指针等书都是一些辅助。有时间就看,没时间不看也没关系。
等工作后真正有时间了再看也来得及。

如果是马上就要去找工作,建议突击看一下C和指针。

嵌入式Linux要学的东西就多了。
可以先学应用开发技能,再深入内核开发。

应用技能列表:
1> 常用linux命令使用
2〉git使用
3〉gcc与makefile编写
4〉shell编程与Perl
5〉Unix编程 (强烈推荐: Unix编程艺术)
6〉POSIX/SystemV API学习
7〉libc 接口学习

内核与驱动开发
1〉如何编译配置内核
2〉如何编译交叉编译工具
3〉如何阅读和调试linux内核
4〉驱动编写
5〉Rootfs系统构建
6〉相关硬件知识,如MTD/USB/PCI/I2C 等。

管理技能:
1〉如何做单体测试
2〉如何写概要设计和详细设计
3〉如何做技术PPT
4〉如何分配任务
5〉如何监督其他人的工作进度
6〉如何激励员工
7〉其他

#17


引用 14 楼  的回复:
今天浏览了很多大牛的论坛,感觉C标准必须看的。只是不知道最新的标准又没有中文版的。有些编译环境不同。引用 10 楼  的回复:

单从语言上来说,C还是很简单的…………

没有什么特别复杂难以理解的概念,也没有隐藏太多的细节,不像C++

个人认为能够写出C程序后,再去看看C标准是有好处的


总的来说,语言只是工具,理解语言的关键在于知道每句语言会导致机器哪些动作

C99的中文版我手头没有,不过网上可能会有吧,不清楚来着
C11的话,我觉得应该是肯定没有中文版

#18


很清晰
引用 16 楼  的回复:
C语言的书经典的也就一本,The C Program Languae。200多页,再慢的速度3个月也看完了。

其它: C专家,C和指针等书都是一些辅助。有时间就看,没时间不看也没关系。
等工作后真正有时间了再看也来得及。

如果是马上就要去找工作,建议突击看一下C和指针。

嵌入式Linux要学的东西就多了。
可以先学应用开发技能,再深入内核开发。

应用技能列表:
1>……

#19


我是来学习的, 逛逛留个印. 方便以后查阅

#20


看看 深入理解计算机系统

#21


先解决 C 的 很多语法问题。嘿嘿
引用 20 楼  的回复:
看看 深入理解计算机系统

#1


推荐楼主看看《编写安全代码》一书

#2


要方便底层的控制就很难做到绝对安全

比如说人人都说python、、lua、php、java、C#好用,但我家就觉得他们难用

为什么,我是搞安全,做底层的,加密算法我都会自己实现,二进制协议我都得自己打包

python、lua之类的脚本的卖点就是“无需关注细节,只要关心业务逻辑”,但我的工作需求导致我的 业务逻辑就是内存细节。如果给我的数组不是个byte[]而是个hash表,我根本就没法工作!

各种语言都有其适应的用途而已

#3


C就是最适合我的工作的语言,它直接提供了对内存的大部分细节操作,但也不能说所有,一些Intel指令集一句机器指令提供的功能用C反而啰嗦一堆,这就是为什么汇编语言也还有其用武之地的原因,目前编译器对于SSE等高级指令的使用能力太差了

#4


我就是觉得自己C水平不够,实力不够。其实对于编程我有兴趣,而且浓厚,最近写驱动程序的时候嘛,感觉心有余而力不足,不对,心也不余。对于代码结构的掌控,也就是架构,对于部分语法的使用,我糊涂的很,逛了一天csdn,感觉低端的问题都没有太多。我纯粹一个很上进的小白。直到嵌入式对C要求蛮高,毕竟我还要进行一段时间的Linux的学习,如果C太差了,那就没办法了。所以没有安全感。
引用 3 楼  的回复:
C就是最适合我的工作的语言,它直接提供了对内存的大部分细节操作,但也不能说所有,一些Intel指令集一句机器指令提供的功能用C反而啰嗦一堆,这就是为什么汇编语言也还有其用武之地的原因,目前编译器对于SSE等高级指令的使用能力太差了

#5


看我就是C小白。编程都困难。想入门C,现在这样的状况,我觉得还有很大差距,不能随心所欲的使用C,先不看它的效果如何,很多东西我都没见过,更别说使用了。
引用 1 楼  的回复:
推荐楼主看看《编写安全代码》一书

#6


老老实实学语法,之后再谈别的

#7


经常有人说基础不好,要学C++,却不好好学习最经典的:The C Program Language。

C语言都没学好,整天玩弄类,模板,设计模式能把C++的效率与方便优势发挥出来?

#8


膜拜大牛啊

#9


有良方赐教……么
引用 6 楼  的回复:
老老实实学语法,之后再谈别的

#10


单从语言上来说,C还是很简单的…………

没有什么特别复杂难以理解的概念,也没有隐藏太多的细节,不像C++

个人认为能够写出C程序后,再去看看C标准是有好处的


总的来说,语言只是工具,理解语言的关键在于知道每句语言会导致机器哪些动作

#11


引用 3 楼  的回复:
C就是最适合我的工作的语言,它直接提供了对内存的大部分细节操作,但也不能说所有,一些Intel指令集一句机器指令提供的功能用C反而啰嗦一堆,这就是为什么汇编语言也还有其用武之地的原因,目前编译器对于SSE等高级指令的使用能力太差了


从编译的角度来说,SIMD支持差这板子打在编译器身上还真是不服啊


本来语言层面对SIMD支持就差,很多架构都是以C库加嵌入汇编的形式提供支持,编译器就算是巧妇也做不了这无米之炊啊

而且相比SIMD,MIMD才是目前编译器关注的主要方向…………

#12


计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#13


单从C语言这块,我觉得书太多。目不暇接、之前的都有学过,可能语法方面欠缺很多。
引用 12 楼  的回复:
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#14


今天浏览了很多大牛的论坛,感觉C标准必须看的。只是不知道最新的标准又没有中文版的。有些编译环境不同。
引用 10 楼  的回复:
单从语言上来说,C还是很简单的…………

没有什么特别复杂难以理解的概念,也没有隐藏太多的细节,不像C++

个人认为能够写出C程序后,再去看看C标准是有好处的


总的来说,语言只是工具,理解语言的关键在于知道每句语言会导致机器哪些动作

#15


目前学的嵌入式,以后可能做linux系统方面的。不过也想写底层驱动。我该怎么努力呢?
引用 12 楼  的回复:
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

#16


C语言的书经典的也就一本,The C Program Languae。200多页,再慢的速度3个月也看完了。

其它: C专家,C和指针等书都是一些辅助。有时间就看,没时间不看也没关系。
等工作后真正有时间了再看也来得及。

如果是马上就要去找工作,建议突击看一下C和指针。

嵌入式Linux要学的东西就多了。
可以先学应用开发技能,再深入内核开发。

应用技能列表:
1> 常用linux命令使用
2〉git使用
3〉gcc与makefile编写
4〉shell编程与Perl
5〉Unix编程 (强烈推荐: Unix编程艺术)
6〉POSIX/SystemV API学习
7〉libc 接口学习

内核与驱动开发
1〉如何编译配置内核
2〉如何编译交叉编译工具
3〉如何阅读和调试linux内核
4〉驱动编写
5〉Rootfs系统构建
6〉相关硬件知识,如MTD/USB/PCI/I2C 等。

管理技能:
1〉如何做单体测试
2〉如何写概要设计和详细设计
3〉如何做技术PPT
4〉如何分配任务
5〉如何监督其他人的工作进度
6〉如何激励员工
7〉其他

#17


引用 14 楼  的回复:
今天浏览了很多大牛的论坛,感觉C标准必须看的。只是不知道最新的标准又没有中文版的。有些编译环境不同。引用 10 楼  的回复:

单从语言上来说,C还是很简单的…………

没有什么特别复杂难以理解的概念,也没有隐藏太多的细节,不像C++

个人认为能够写出C程序后,再去看看C标准是有好处的


总的来说,语言只是工具,理解语言的关键在于知道每句语言会导致机器哪些动作

C99的中文版我手头没有,不过网上可能会有吧,不清楚来着
C11的话,我觉得应该是肯定没有中文版

#18


很清晰
引用 16 楼  的回复:
C语言的书经典的也就一本,The C Program Languae。200多页,再慢的速度3个月也看完了。

其它: C专家,C和指针等书都是一些辅助。有时间就看,没时间不看也没关系。
等工作后真正有时间了再看也来得及。

如果是马上就要去找工作,建议突击看一下C和指针。

嵌入式Linux要学的东西就多了。
可以先学应用开发技能,再深入内核开发。

应用技能列表:
1>……

#19


我是来学习的, 逛逛留个印. 方便以后查阅

#20


看看 深入理解计算机系统

#21


先解决 C 的 很多语法问题。嘿嘿
引用 20 楼  的回复:
看看 深入理解计算机系统