问题标签 [kr-c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ANSI C 和 K&R C 之间的主要区别是什么?
关于 ANSI C的维基百科文章说:
ANSI C 标准化过程的目标之一是生成 K&R C(第一个发布的标准)的超集,其中包含随后引入的许多非官方特性。然而,标准委员会还包括了一些新特性,例如函数原型(借用自 C++ 编程语言)和功能更强大的预处理器。参数声明的语法也进行了更改以反映 C++ 风格。
这让我觉得存在差异。但是,我没有看到K&R C和ANSI C的比较。有没有这样的文件?如果不是,主要区别是什么?
编辑:我相信 K&R 书的封面上写着“ANSI C”。至少我相信我家里的版本是这样的。所以也许不再有区别了?
c - 什么是 C 中寄存器变量使用的好例子?
我正在阅读 K&R 并来到关于寄存器变量的小部分,并且想知道这里的人们是否有一些很好的实践示例。
从 K&R 的第 4.7 节:
寄存器声明看起来像
register int x;
注册字符 c;
需要明确的是,我只是希望看到一些很酷的代码示例。我(很确定我)理解主题,所以不需要输入详细的解释(除非你愿意)。
c - ungetc(或来自 K&R 的 ungetch)的目的是什么?
谁能向我解释 ungetch 的目的?这来自 K&R 第 4 章,您在其中创建了一个逆波兰计算器。
我已经在没有调用 ungetch 的情况下运行了该程序,并且在我的测试中它仍然可以正常工作。
(我已经删除了 getch 中的三元运算符以使其更清晰。)
c - 帮助自定义 getline() 函数
谁能向我解释为什么这不起作用?
我现在不担心返回值 - 只是为什么printf("%s", line)
不工作的原因。
谢谢!
编辑:固定,line = malloc(sizeof(char) * lim);
但它仍然无法正常工作。
解决方案:的地址*line
在整个函数中递增。当它被传递给 时printf()
,*line
指向 '\0' 因为那是它的地址被递增到的地方。使用一个临时指针来存储由malloc()
to分配的原始地址*line
,然后将该指针传递给printf()
,允许函数向上遍历指针。
c - K&R 第 1 章 - 练习 22 的解法,你怎么看?
我正在从 k&r 学习 C 作为第一语言,我只是想问一下,如果你认为这个练习以正确的方式解决,我知道它可能没有你想要的那么完整,但我想要意见,所以我知道我正在学习 C 正确。
谢谢
c - K&R Exercise 2-3 "Hex to int converter" Problem
The program I wrote works in demographics consisting of only single Hexadecimal values. (Probably not the most elegant solution, but I'm a new programmer) My question is, how would I go about handling of multiple hexadecimal digits, such as 0xAF, or 0xFF, etc? I'm not exactly sure, and I've seemed confuse myself greatly, in the attempt. I'm not asking for someone to hold my hand, but to give me a tip where I've gone wrong in this code and thoughts on how to fix it.
Thanks :)
c - 带有指针和数组混淆的 K&R Qsort 示例
我发现很难理解下面的代码片段。我理解所显示的指向功能习惯的指针,但我发现混淆的地方在指示的行中。
有人可以向我解释这个例程,特别是指示的行,只是告诉我它在做什么,因为我无法弄清楚这个 qsort,我在阅读 k&r 时阅读的爱斯基摩指南说 qsort 例程是垃圾,而且过于复杂。我只需要理解为什么会这样写,因为这对我来说毫无意义。
谢谢,如果没有,请阅读本文。
c - 写入 c 字符串
我的代码段错误,我不知道为什么。
gdb 调试器告诉我,问题出在第 6 行,我想将一个字符存储到 c 字符串中(如果我使用左值指针解引用,这是同样的问题。)这就是他所说的:
我正在从 K&R-C 书中学习,这是第 2.8 章中的简化示例(删除功能)。我不知道问题出在哪里。
c - K&R C 锻炼帮助
我一直在阅读 K&R C 编程语言书,但我坚持练习 2-6,内容如下:
编写一个函数 setbits(x,p,n,y) 返回 x,其中从位置 p 开始的 n 位设置为 y 的最右边 n 位,其他位保持不变。
我很难理解他们要我做什么。我在这里查看了一个可能的答案,但我仍然不太明白。我认为这是让我失望的措辞。谁能以不同的方式解释他们要我做什么?我希望不同的措辞能帮助我理解我需要在代码方面做些什么。
c - 在我出生之前,C 是怎样的?
问题来了,C (K&R C) 是怎样的?问题是关于 C 生命的前十年或二十年?
我知道,我从我大学的一位教授那里听说,C 没有我们今天使用 ANSI C 获得的标准库。他们曾经在包装的汇编中编写 IO 例程!第二件事是 K&R 的书,是程序员读过的最好的书之一,这是我的教授告诉我们的 :)
我想了解更多关于优秀 C 的信息。例如,与 ANSI C 相比,你知道它有什么主要区别,或者 C 是如何改变程序员对编程的看法的?
仅作记录,我在主要阅读了这两篇论文后提出了这个问题:
我知道,它们是关于 C++ 的!这就是为什么我想更多地了解 C,因为这两篇论文是关于C++ 是如何从 C 中诞生的。我现在问的是它之前的样子。感谢Lazarus指出 K&R 的第一版,但我仍然很想从 SO 大师那里了解更多关于 C 的信息;)