Questions tagged «c»

C是用于操作系统,游戏和其他高性能工作的通用计算机编程语言。

5
如何编写一个非常基本的编译器
高级编译器喜欢gcc根据代码的编写语言(例如C,C ++等)将代码编译为机器可读文件。实际上,它们根据相应语言的库和功能来解释每个代码的含义。如果我错了纠正我。 我希望通过编写一个非常基本的编译器(可能使用C语言)来编译静态文件(例如,文本文件中的Hello World)来更好地理解编译器。我尝试了一些教程和书籍,但所有这些都是针对实际案例的。它们处理具有与相应语言相关的含义的动态代码的编译。 如何编写基本的编译器以将静态文本转换为机器可读文件? 下一步将变量引入编译器。想象一下,我们想编写一个只编译某种语言功能的编译器。 引入实用的教程和资源受到高度赞赏:-)
214 c  compiler  compilation  gcc 

7
什么时候使用浮点数,什么时候使用双精度点
在我的编程经验中,我经常需要决定是否对实数使用float或double。有时我会选择浮动,有时我会选择双重,但这确实让我感觉更加主观。如果我要捍卫自己的决定,我可能不会给出合理的理由。 什么时候使用float和什么时候使用double?仅当存在内存限制时,您才总是使用double吗?或者,除非精度要求要求您使用double,否则您始终使用float?浮点数和双精度数之间关于基本算术的计算复杂度是否存在实质性差异?使用float或double的利弊是什么?你甚至用过长双吗?
194 c++  c  floating-point  numbers 

8
每种语言都是用C编写的吗?
有时,当使用不同的语言(C / C ++,C#)进行编程时,我想到了这种想法: 每种语言都用C编程语言编写吗? C语言是所有语言的母亲/父亲吗? 每个概念(OOP等)是否都在C中实现? 我的方向正确吗?

12
何时在C ++上使用C,以及在C上使用C ++?
我被介绍给计算机科学已经一年多了,从我的经验看来,C和C ++都被认为是“超快速”语言,而其他人(例如Python)和此类脚本语言通常被认为较慢。 但是我也看到过很多情况,一个软件项目甚至一个很小的项目都会交织文件,其中一定数量的文件用C编写,而一定数量的文件用C ++编写。 (我还注意到,C ++文件几乎总是具有相应的头,而C文件则没有那么多)。但是我的主要研究目的是对何时在C ++上使用C合适,以及何时在C上使用C ++更好的情况有一个一般的直觉。除了(1)C ++是面向对象的,而C ++是面向对象的, C不是,并且(2)语法非常相似,并且C ++是故意创建的,在许多方面都类似于C,但我不确定它们之间的区别是什么。在我看来,它们在许多领域(几乎)是可以互换的。 因此,如果有人可以解决这种情况,我们将不胜感激!谢谢
164 c++  c 

19
是否有任何理由使用C ++代替C,Perl,Python等?[关闭]
作为Linux(服务器端)开发人员,我不知道在哪里以及为什么应该使用C ++。 当我追求性能时,第一个和最后一个选择是C。 当“性能”不是主要问题时,Perl和Python等编程语言将是不错的选择。 我在这方面了解的几乎所有开源应用程序都是用C,Perl,Python,Bash脚本,AWK甚至PHP编写的,但是没有人使用C ++。 我不是在讨论GUI或Web应用程序之类的其他领域,而是在谈论Linux,CLI和守护程序。 使用C ++是否有令人满意的理由?


6
为什么没有比C更快,更好的语言出现呢?[关闭]
如今,随着所有新的“现代”语言问世,C为何仍被誉为最快和“最接近机器”?我真的不相信只有一种正确的做事方式,而C语言已经存在很长时间了(自60年代以来!)。我们真的没有想出比50年前更好的东西了吗? 我知道现代语言是高级语言,可以处理某些任务,例如垃圾收集和内存分配,并利用库等。我只是问为什么C从来没有真正的第二选择。 难道C太完美了,以至于没有其他方法可以操作计算机(除开发人员采用之外)? 编辑看,我不是想敲C或任何您喜欢的语言。我想知道为什么C成为标准,为什么其他替代方案从未出现,而C只是被“接受”。
147 c 

11
我应该停止使用术语C / C ++吗?
我了解C和C ++是不同的语言,但是当我学习C ++时,总是被告知C是C ++的子集,或者C ++是带有类的C。在C ++ x0,C ++ 11(或现代的C ++ 11/14/17)问世之前,这都是事实。实际上(特别是在嵌入式系统上工作时),很可能会发现用C ++编写的代码,但是很多部分完全是用纯C语言编写的。这里我有几个问题: 我应该停止使用术语C / C ++吗? 如果对#1的回答是肯定的,那么我将如何调用混合使用C和C ++的程序? 鉴于这两种语言都是“不同的”语言,C ++编译器很可能在某些时候停止支持用C语言编写的代码(因为现代c ++在指针,动态内存处理等基本内容上与C思维方式有所出入) 现在制定C / C ++标准的人员之间是否存在任何协作以保持兼容性 如果#4是肯定的,那么这种合作可能会在不久的将来随着现代c ++的出现而结束(11/14/17) 我知道已经有类似的问题,但是我敢肯定,很多人都会分享这些问题,因此我非常有兴趣获得良好的答案,尤其是在不久的将来与C ++趋势有关的观点。
140 c++  c  terminology  c++11 

16
人们为什么使用C这么危险?
我正在考虑学习C。 但是,如果人们可以“危险地”使用C(或C ++),为什么还要使用它呢? 危险是指指针和其他类似的东西。 就像堆栈溢出问题一样,为什么gets函数如此危险以至于不应该使用它?。为什么程序员不仅仅使用Java或Python或其他编译语言(如Visual Basic)?
132 c++  c 

7
为什么要在一行中声明一个变量,然后在下一行中对其赋值?
我经常在C和C ++代码中看到以下约定: some_type val; val = something; some_type *ptr = NULL; ptr = &something_else; 代替 some_type val = something; some_type *ptr = &something_else; 最初,我认为这是从必须在范围的顶部声明所有局部变量的日子起遗留下来的习惯。但是我学会了不要这么快就消除资深开发人员的习惯。因此,是否有充分的理由在一行中声明并在事后分配?
101 c++  c 

4
Java引用与C指针有何不同?
C有指针,Java有所谓的引用。从某种意义上说,它们有共同点,即它们都指向某个事物。我知道C中的指针存储它们指向的地址。参考也存储地址吗?除了指针更灵活,更容易出错之外,它们又有何不同?
97 java  c  pointers  reference 

3
为什么编程语言(尤其是C)使用大括号而不是方括号?
实际上,“ C样式语言”的定义可以简化为“使用花括号({})”。我们为什么要使用该特定字符(为什么不使用更合理的字符(如[],至少在美国键盘上不需要Shift键)? 这些花括号会给程序员的生产力带来实际的好处,还是新的语言设计师应该寻找替代品(例如,Python背后的人)? Wikipedia告诉我们C 使用大括号,但不是为什么。Wikipedia上有关基于C的编程语言列表的一篇文章表明,此语法元素有些特殊: 广义上讲,C系列语言是使用类似C的块语法的语言(包括大括号来开始和结束块)。

14
仍然使用C编程语言吗?
我是C#程序员,我的大部分开发工作都是针对网站以及一些Windows应用程序。就C而言,由于没有必要,我已经很长时间没有使用它了。当我的一个朋友说她在学习C#时需要学习C来测试工作时,我感到惊讶。 我认为,只有有人用C进行开发,才会有人学习C进行测试。据我所知,所有与COM和硬件设计有关的开发也都用C ++进行。因此,如果您需要使用C ++,则学习C毫无意义。我也不相信历史意义,那么为什么要花时间和金钱来学习C? C仍用于任何新软件开发或其他任何形式吗?

15
是什么让C在OOP时代如此受欢迎?[关闭]
我用C和C ++编写了大量代码,但是没想到C是第二大流行语言,仅次于Java。 TIOBE编程社区索引 我很好奇为什么在这个OOP时代,C仍然如此流行?请注意,在前5种流行的编程语言中,有4种是“现代”的,面向对象的语言。 现在,我同意您可以在C中使用OOP,但这有点痛苦和不雅(至少与我猜想的C ++相比)。那么,是什么使C如此受欢迎?是效率吗?低级 绝大多数已经存在的库或其他库?

16
年轻人需要学习指针概念吗?
为什么C大师Dennis Ritchie会在C中引入指针?以及为什么其他编程语言(例如VB.NET或Java或C#)消除了它们?我在Google中找到了一些要点,我也想听听您的评论。他们为什么要消除现代语言中的指针概念? 人们说C是基本语言,而指针是使C强大而又出众且使C仍能与更多现代语言竞争的概念。那么为什么他们要用更现代的语言消除指针呢? 您认为指针知识对于新程序员仍然重要吗?如今,人们正在使用VB.NET或Java,它们支持比C更高级的功能(并且不使用任何指针概念),而我现在看到的许多人(我的朋友)选择这些语言而忽略了C,因为它们支持高级功能。我告诉他们以C开头。他们说,当您在VB.NET或Java中进行高级的操作(在C中无法实现)时,学习指针的概念很浪费。 你怎么看? 更新时间: 我在Google上读到的评论是: 较早的计算机速度太慢且未优化。 使用指针可以直接访问地址,这样可以节省时间,而不是在函数调用中复制它。 使用指针的安全性要差得多,这就是Java和C#不包含指针的原因。 这些以及更多我发现的东西。我仍然需要一些有价值的答案。这将不胜感激。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.