由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 写了一星期C code
相关主题
32/64编程怎么做才好呢请教一个排序的问题。
唯一让java有压力的是JavaScriptAPP泡沫即将破灭(转载)
interview with Ben Klemens, author of 21st Century C请教赵策老师
简述一下常见语言的缺点大家看过来Re: C++ Guys!!!!
c++ programmer们就不用悲愤了[转载] Unix/Posix system programming training
Visual Studio支持Linux C++an interview question - C programming
How are parameters passed between ANSI C subroutines?awk求救
狗年语言学习计划学习multi threading, 有什么好书?
相关话题的讨论汇总
话题: br话题: rust话题: go话题: ansi话题: string
进入Programming版参与讨论
1 (共1页)
c*******v
发帖数: 2599
1
拿出来原来国内带来的k and r的书翻翻。这本书
和公司new grad的新人的年龄差不多。太有意思了。
w***g
发帖数: 5958
2
真有闲功夫...

【在 c*******v 的大作中提到】
: 拿出来原来国内带来的k and r的书翻翻。这本书
: 和公司new grad的新人的年龄差不多。太有意思了。

c*******v
发帖数: 2599
3
很难找到C程序员。多数都简历上有一点,后来很快转行了。

【在 w***g 的大作中提到】
: 真有闲功夫...
a*****g
发帖数: 19398
4
写得书不好懂

【在 c*******v 的大作中提到】
: 拿出来原来国内带来的k and r的书翻翻。这本书
: 和公司new grad的新人的年龄差不多。太有意思了。

c*******v
发帖数: 2599
5
以现在眼光看,ANSI C标准库里面一堆垃圾一样的string函数。用一个都要提心吊胆半
天。
我认为这样的语言系统,是绝对无法支持现在软件上亿数量级的装机量的。
反过来看,也不得不敬佩那时候人们乱枪打鸟的勇气。


: 写得书不好懂



【在 a*****g 的大作中提到】
: 写得书不好懂
n******t
发帖数: 4406
6
C的string函數沒有什麼問題,前提是你要知道怎麼用。
而且99%的去嘲笑C string函數設計的人都是自己不寫程序的。

【在 c*******v 的大作中提到】
: 以现在眼光看,ANSI C标准库里面一堆垃圾一样的string函数。用一个都要提心吊胆半
: 天。
: 我认为这样的语言系统,是绝对无法支持现在软件上亿数量级的装机量的。
: 反过来看,也不得不敬佩那时候人们乱枪打鸟的勇气。
:
:
: 写得书不好懂
:

c*******v
发帖数: 2599
7
我批评的是ANSI C标准库。现如今的大家生产上用的多数都是部分改装过。加了各种规
定和限制的。gcc也有给好多改动。


: C的string函數沒有什麼問題,前提是你要知道怎麼用。

: 而且99%的去嘲笑C string函數設計的人都是自己不寫程序的。



【在 n******t 的大作中提到】
: C的string函數沒有什麼問題,前提是你要知道怎麼用。
: 而且99%的去嘲笑C string函數設計的人都是自己不寫程序的。

c*******v
发帖数: 2599
8
給你看個東西
https://github.com/git/git/blob/master/banned.h
我基本上也把这几个函数办了。


: 我批评的是ANSI C标准库。现如今的大家生产上用的多数都是部分改装过
。加了
各种规

: 定和限制的。gcc也有给好多改动。



【在 c*******v 的大作中提到】
: 我批评的是ANSI C标准库。现如今的大家生产上用的多数都是部分改装过。加了各种规
: 定和限制的。gcc也有给好多改动。
:
:
: C的string函數沒有什麼問題,前提是你要知道怎麼用。
:
: 而且99%的去嘲笑C string函數設計的人都是自己不寫程序的。
:

s**d
发帖数: 258
9
就这几个函数,然后就下结论 C 语言太糟糕了?

【在 c*******v 的大作中提到】
: 給你看個東西
: https://github.com/git/git/blob/master/banned.h
: 我基本上也把这几个函数办了。
:
:
: 我批评的是ANSI C标准库。现如今的大家生产上用的多数都是部分改装过
: 。加了
: 各种规
:
: 定和限制的。gcc也有给好多改动。
:

p***o
发帖数: 1252
10
strdup都不ban ...

【在 c*******v 的大作中提到】
: 給你看個東西
: https://github.com/git/git/blob/master/banned.h
: 我基本上也把这几个函数办了。
:
:
: 我批评的是ANSI C标准库。现如今的大家生产上用的多数都是部分改装过
: 。加了
: 各种规
:
: 定和限制的。gcc也有给好多改动。
:

相关主题
How are parameters passed between ANSI C subroutines?APP泡沫即将破灭(转载)
狗年语言学习计划请教赵策老师
请教一个排序的问题。大家看过来Re: C++ Guys!!!!
进入Programming版参与讨论
n******t
发帖数: 4406
11
ansi C的標準庫其實也沒有問題。
這些函數從來就是給你操作程序中間長度清晰有定義的string的,不是用來操作任意
buffer的!

【在 c*******v 的大作中提到】
: 我批评的是ANSI C标准库。现如今的大家生产上用的多数都是部分改装过。加了各种规
: 定和限制的。gcc也有给好多改动。
:
:
: C的string函數沒有什麼問題,前提是你要知道怎麼用。
:
: 而且99%的去嘲笑C string函數設計的人都是自己不寫程序的。
:

n******t
发帖数: 4406
12
爲什麼要ban?
雖然其實也沒什麼大用。

【在 p***o 的大作中提到】
: strdup都不ban ...
x*****2
发帖数: 117
13
那个年代的计算力宝贵,在标准函数中嵌入边界检查,让每次调用都过一遍太奢侈。防
范错误是程序员的责任,就像用汇编编程一样。

:以现在眼光看,ANSI C标准库里面一堆垃圾一样的string函数。用一个都要提心吊胆
半天。
:我认为这样的语言系统,是绝对无法支持现在软件上亿数量级的装机量的。
c*******v
发帖数: 2599
14
假如限定使用范围,那你总可以找到一个范围。说这才是ANSI c的使用范围。所以我前
面讲,装机量少的软件较合适。不然纯用ANSI c不可能。多数都要加改装和限定:
Coding 这个practice, 错误的扩散我觉得是有规律的。规模大的情况下,也许可以当
作数学物理对象来研究。所以我说的不是单个人的情况。
另一个很麻烦,也许更麻烦的事是,对这些string函数的各种改装。会导致不少实战的
兼容问题。
上面那个git 项目的ban list的思路是,与其修来修去,不如都转做memmove之类的操
作。


: ansi C的標準庫其實也沒有問題。

: 這些函數從來就是給你操作程序中間長度清晰有定義的string的,不是用
來操作
任意

: buffer的!



【在 n******t 的大作中提到】
: 爲什麼要ban?
: 雖然其實也沒什麼大用。

c*******v
发帖数: 2599
15
这个程序员的责任这种说法,我无法认同。因为责任一词是政治术语。
改成: ANSI的string.h 假设程序员可以自己正确的追踪string的长度。


: 那个年代的计算力宝贵,在标准函数中嵌入边界检查,让每次调用都过一
遍太奢
侈。防

: 范错误是程序员的责任,就像用汇编编程一样。

: :以现在眼光看,ANSI C标准库里面一堆垃圾一样的string函数。用一个
都要提
心吊胆

: 半天。

: :我认为这样的语言系统,是绝对无法支持现在软件上亿数量级的装机量
的。



【在 x*****2 的大作中提到】
: 那个年代的计算力宝贵,在标准函数中嵌入边界检查,让每次调用都过一遍太奢侈。防
: 范错误是程序员的责任,就像用汇编编程一样。
:
: :以现在眼光看,ANSI C标准库里面一堆垃圾一样的string函数。用一个都要提心吊胆
: 半天。
: :我认为这样的语言系统,是绝对无法支持现在软件上亿数量级的装机量的。

p***o
发帖数: 1252
16
这个跟其他的不一样,需要free。

【在 n******t 的大作中提到】
: 爲什麼要ban?
: 雖然其實也沒什麼大用。

c*******v
发帖数: 2599
17
这个还是小问题。毕竟其他语言,也经常在函数内new一个。大家都适应了。
strcpy 还要确保source和target的memory block不重叠。

【在 p***o 的大作中提到】
: 这个跟其他的不一样,需要free。
p***o
发帖数: 1252
18
你太高看程序员了,要是手动free好用还要GC干啥,要是不要GC也没其他语言什么事了。

【在 c*******v 的大作中提到】
: 这个还是小问题。毕竟其他语言,也经常在函数内new一个。大家都适应了。
: strcpy 还要确保source和target的memory block不重叠。

m*****p
发帖数: 39
19
C語言簡單啊,該用C的地方不用C,其他語言更複雜。
不用C難道用Rust?用Go?用Cpp?
很多時候C非常鋒利好用,其他幾個缺點特別明顯。


: 你太高看程序员了,要是手动free好用还要GC干啥,要是不要GC也没其他语言什
么事了。



【在 p***o 的大作中提到】
: 你太高看程序员了,要是手动free好用还要GC干啥,要是不要GC也没其他语言什么事了。
c*******v
发帖数: 2599
20
我的意思是说。相对来讲。new比较容易适应。
这个要求src和tgt不能overlap,极其难用。
既然有memmove,strcpy这个函数我觉得实际上是作废了。
咱们考虑下真实生活。
假如我发现谁的code里有strcpy,
那我下一句问,tgt和src会不会overlap?
作者会怎么答?异常处理了?似乎有点匪夷所思。

了。

【在 p***o 的大作中提到】
: 你太高看程序员了,要是手动free好用还要GC干啥,要是不要GC也没其他语言什么事了。
相关主题
[转载] Unix/Posix system programming training学习multi threading, 有什么好书?
an interview question - C programmingstack trace
awk求救一个关于空间分配的问题
进入Programming版参与讨论
p***o
发帖数: 1252
21
嗯,到处都是坑 。

【在 c*******v 的大作中提到】
: 我的意思是说。相对来讲。new比较容易适应。
: 这个要求src和tgt不能overlap,极其难用。
: 既然有memmove,strcpy这个函数我觉得实际上是作废了。
: 咱们考虑下真实生活。
: 假如我发现谁的code里有strcpy,
: 那我下一句问,tgt和src会不会overlap?
: 作者会怎么答?异常处理了?似乎有点匪夷所思。
:
: 了。

c*******v
发帖数: 2599
22
硬件公司做CPU的时候,往往C compiler和CPU simulator就一起做。
不是软件的技术原因。

【在 m*****p 的大作中提到】
: C語言簡單啊,該用C的地方不用C,其他語言更複雜。
: 不用C難道用Rust?用Go?用Cpp?
: 很多時候C非常鋒利好用,其他幾個缺點特別明顯。
:
:
: 你太高看程序员了,要是手动free好用还要GC干啥,要是不要GC也没其他语言什
: 么事了。
:

m*****p
发帖数: 39
23
我覺得其實就是語言設計的問題:
Cpp巨大無比,複雜的模板,無用的類抽象。。。
Go有runtime和GC,根本不能脫離OS單獨存在。。。
Rust我就不噴了,片面強調安全性,增加編譯器成本。。。
搞硬件的軟件語言只有C一種選擇,另一個相似領域是HPC:Infiniband、MPI和CUDA都
是C,純C
剩下的能搞定baremetal編程的就是兩個老古董:ada和fortran,估計年輕人更不知道了
總之:搞超算和硬件的,精通C是基本要求,因為世界上沒有人精通Cpp


: 硬件公司做CPU的时候,往往C compiler和CPU simulator就一起做。

: 不是软件的技术原因。



【在 c*******v 的大作中提到】
: 硬件公司做CPU的时候,往往C compiler和CPU simulator就一起做。
: 不是软件的技术原因。

n***p
发帖数: 110
24
搞Ada的老中估计没几个,国防部项目居多。
rust你是想说增加编译难度还是编译器难度?

道了

【在 m*****p 的大作中提到】
: 我覺得其實就是語言設計的問題:
: Cpp巨大無比,複雜的模板,無用的類抽象。。。
: Go有runtime和GC,根本不能脫離OS單獨存在。。。
: Rust我就不噴了,片面強調安全性,增加編譯器成本。。。
: 搞硬件的軟件語言只有C一種選擇,另一個相似領域是HPC:Infiniband、MPI和CUDA都
: 是C,純C
: 剩下的能搞定baremetal編程的就是兩個老古董:ada和fortran,估計年輕人更不知道了
: 總之:搞超算和硬件的,精通C是基本要求,因為世界上沒有人精通Cpp
:
:
: 硬件公司做CPU的时候,往往C compiler和CPU simulator就一起做。

m*****p
发帖数: 39
25
Rust又難又小眾,編譯速度比Cpp更慢,無法跟C相提並論。語法也不兼容,甚至不如Go


: 搞Ada的老中估计没几个,国防部项目居多。

: rust你是想说增加编译难度还是编译器难度?

: 道了



【在 n***p 的大作中提到】
: 搞Ada的老中估计没几个,国防部项目居多。
: rust你是想说增加编译难度还是编译器难度?
:
: 道了

n***p
发帖数: 110
26
Rust卖点是safety without performance penalty. 比的不是编译速度啊。

Go

【在 m*****p 的大作中提到】
: Rust又難又小眾,編譯速度比Cpp更慢,無法跟C相提並論。語法也不兼容,甚至不如Go
:
:
: 搞Ada的老中估计没几个,国防部项目居多。
:
: rust你是想说增加编译难度还是编译器难度?
:
: 道了
:

m*****p
发帖数: 39
27
所以Rust不是銀彈,它就是個螺絲刀,皮實安全不出錯而已。
C是手術刀,出錯後輕則指頭削掉,重則立即斃命。
Cpp是超級瑞士軍刀,一般人用不了。
Go是電動剃鬚刀,全自動並行處理。
其實也可以用瑞士軍刀刮鬍子,大不了割頸自殺而已。


: Rust卖点是safety without performance penalty. 比的不是编译速度啊。

: Go



【在 n***p 的大作中提到】
: Rust卖点是safety without performance penalty. 比的不是编译速度啊。
:
: Go

P****i
发帖数: 12972
28
abi兼容就行了。成熟的c lib直接用ffi就好了。
rust/c相互调用跟比c/c++之间还简单。

Go

【在 m*****p 的大作中提到】
: Rust又難又小眾,編譯速度比Cpp更慢,無法跟C相提並論。語法也不兼容,甚至不如Go
:
:
: 搞Ada的老中估计没几个,国防部项目居多。
:
: rust你是想说增加编译难度还是编译器难度?
:
: 道了
:

m*****p
发帖数: 39
29
搞笑,還ABI兼容,你以為是windows嗎,請列舉出各種POSIX系統的ABI來。。。光RHEL
就N種ABI,再加上大小端、32/64、各種float,ILP32、LP64、x86/arm/power,還有各
種處理器tune。。。這還是我隨便說說


: abi兼容就行了。成熟的c lib直接用ffi就好了。

: rust/c相互调用跟比c/c 之间还简单。

: Go



【在 P****i 的大作中提到】
: abi兼容就行了。成熟的c lib直接用ffi就好了。
: rust/c相互调用跟比c/c++之间还简单。
:
: Go

c*******v
发帖数: 2599
30
除了ansi c + 标准库。没有什么语言系统可以兼容大小不同的芯片和板子。
rust支持的板子我以前看过。有个embedded rust项目。但是我觉得还不成熟。

RHEL

【在 m*****p 的大作中提到】
: 搞笑,還ABI兼容,你以為是windows嗎,請列舉出各種POSIX系統的ABI來。。。光RHEL
: 就N種ABI,再加上大小端、32/64、各種float,ILP32、LP64、x86/arm/power,還有各
: 種處理器tune。。。這還是我隨便說說
:
:
: abi兼容就行了。成熟的c lib直接用ffi就好了。
:
: rust/c相互调用跟比c/c 之间还简单。
:
: Go
:

相关主题
请推荐几本Multi-threading的编程书籍唯一让java有压力的是JavaScript
pthread and C++interview with Ben Klemens, author of 21st Century C
32/64编程怎么做才好呢简述一下常见语言的缺点
进入Programming版参与讨论
P****i
发帖数: 12972
31
你不看上下文?这是跟golang比,相较而言的。

RHEL

【在 m*****p 的大作中提到】
: 搞笑,還ABI兼容,你以為是windows嗎,請列舉出各種POSIX系統的ABI來。。。光RHEL
: 就N種ABI,再加上大小端、32/64、各種float,ILP32、LP64、x86/arm/power,還有各
: 種處理器tune。。。這還是我隨便說說
:
:
: abi兼容就行了。成熟的c lib直接用ffi就好了。
:
: rust/c相互调用跟比c/c 之间还简单。
:
: Go
:

m*****p
发帖数: 39
32
誰看不懂上下文,這樓主要討論C語言,Rust和Go都是被提溜出來陪鬥的。我說C最精巧
,其他都是屎(包括Cpp),你非得說屎a比屎b香一點,那我能怎麼辦。。。


: 你不看上下文?这是跟golang比,相较而言的。

: RHEL



【在 P****i 的大作中提到】
: 你不看上下文?这是跟golang比,相较而言的。
:
: RHEL

M********t
发帖数: 5032
33
这些东西比较底层,一般需要外包一下

【在 c*******v 的大作中提到】
: 以现在眼光看,ANSI C标准库里面一堆垃圾一样的string函数。用一个都要提心吊胆半
: 天。
: 我认为这样的语言系统,是绝对无法支持现在软件上亿数量级的装机量的。
: 反过来看,也不得不敬佩那时候人们乱枪打鸟的勇气。
:
:
: 写得书不好懂
:

P****i
发帖数: 12972
34
你说c最精巧,我又没反对。
说屎a比屎b香一点是你先说的:“語法也不兼容,甚至不如Go”。现在反倒倒打一耙了。
你到底是来讨论问题的,还是来抬杠的?

【在 m*****p 的大作中提到】
: 誰看不懂上下文,這樓主要討論C語言,Rust和Go都是被提溜出來陪鬥的。我說C最精巧
: ,其他都是屎(包括Cpp),你非得說屎a比屎b香一點,那我能怎麼辦。。。
:
:
: 你不看上下文?这是跟golang比,相较而言的。
:
: RHEL
:

1 (共1页)
进入Programming版参与讨论
相关主题
stack tracec++ programmer们就不用悲愤了
一个关于空间分配的问题Visual Studio支持Linux C++
请推荐几本Multi-threading的编程书籍How are parameters passed between ANSI C subroutines?
pthread and C++狗年语言学习计划
32/64编程怎么做才好呢请教一个排序的问题。
唯一让java有压力的是JavaScriptAPP泡沫即将破灭(转载)
interview with Ben Klemens, author of 21st Century C请教赵策老师
简述一下常见语言的缺点大家看过来Re: C++ Guys!!!!
相关话题的讨论汇总
话题: br话题: rust话题: go话题: ansi话题: string