Questions tagged «c»

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

3
为什么我们仍然向后增加堆栈?
编译C代码并查看汇编时,所有的堆栈都像这样向后生长: _main: pushq %rbp movl $5, -4(%rbp) popq %rbp ret -4(%rbp)-这是否意味着基本指针或堆栈指针实际上是向下移动内存地址而不是向上移动?这是为什么? 我换$5, -4(%rbp)到$5, +4(%rbp),编译和运行代码并没有任何错误。那么,为什么我们还必须在内存堆栈上倒退呢?
46 c  memory  assembly 

16
简历中的语言:放“ C / C ++”或“ C,C ++”更好吗?[关闭]
我要在几周内毕业,我的简历(如预期的那样)列出了我曾经使用过的语言。此前我已经把“C / C ++”,但当时我没有说用这两种语言很多经验,我现在要做的。 现在我已经正式学习了这两种语言,对我(以及真正了解这两种语言的任何人)来说,它们是相似的,同时又是完全相似的。当然,大多数C代码都是可编译的C ++代码,但是这些相似之处在很大程度上结束了语法和库函数的合并。在大多数非平凡的问题中,机会是所需的C ++解决方案将不同于所需的C解决方案。 我的问题: 招聘人员会注意还是关心您是否将“ C / C ++”而不是“ C,C ++”?他们是否会因为缺乏第一种形式而缺乏对这两种形式的工作的了解,还是会认为包含第二种形式是一种潜在的“简历增强”(将它们列为2种语言,而不是“一种”) ? 此外,对于您申请的对这两种语言特别感兴趣的工作,面试过程是否包括有关C编程和C ++编程之间差异的问题(因此,关于实际编程技术,不仅是后者中的额外范例) )?
46 c++  resume  c 


2
NaN拳击的目的是什么?
阅读21世纪C时,我到达了第6章的“用NaNs标记异常数值”一节,其中解释了使用尾数中的位来存储一些任意位模式,将它们用作标记或指针的方法(书中提到WebKit使用了这种技术)。 我不确定我是否了解这种技术的效用,我认为这是一种hack(它依赖于硬件而不是NaN中尾数的值),但是来自我不习惯的Java背景C的粗糙度 这是在NaN中设置和读取标记的代码段 #include <stdio.h> #include <math.h> //isnan double ref; double set_na(){ if (!ref) { ref=0/0.; char *cr = (char *)(&ref); cr[2]='a'; } return ref; } int is_na(double in){ if (!ref) return 0; //set_na was never called==>no NAs yet. char *cc = (char *)(&in); char *cr = (char *)(&ref); for …

6
用字符串字面量来初始化char []是不好的做法吗?
我在CodeGuru上读了一个标题为“ strlen vs sizeof”的线程,其中一个答复指出“ char用字符串文字初始化数组仍然是[sic]不好的做法”。 这是真的吗?还是他的观点(尽管是“精英成员”)? 这是原始问题: #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } 对。大小应为长度加1是? 这是输出 the size of september is 8 and the length is 9 大小一定是10。就像在计算strcpy改变字符串长度之前计算它的sizeof字符串一样。 我的语法有问题吗? …

8
如何正确使用Google for C
尝试使用Google查找有关C编程语言的教程或答案的问题是C的表达力不足以缩小搜索范围。甚至与“ Programming”和/或“ Language”之类的关键字结合使用时,大多数情况下也会产生C ++,C#和Objective-C的结果。 有没有一种方法可以使用Google更有效地搜索特定的C资源?
44 c  google  search 

11
关于无符号整数的最佳实践是什么?
我到处都使用unsigned int,但不确定是否应该这样做。可以是从数据库主键ID列到计数器等。如果数字永远不能为负,那么我将始终使用无符号整数。 但是我从其他人的代码中注意到,似乎没有其他人可以这样做。我忽略了一些关键的事情吗? 编辑:由于这个问题,我也注意到在C语言中,返回错误的负值是司空见惯的,而不是像C ++中那样引发异常。

14
我该怎么办才能不使用GPL许可证窃取“ Hello World”代码?
在项目中,我找到了一个文件math.c,其中包含一个很大的GPL标头,并且... //------------------------------------------------------------------------------ /// Returns the minimum value between two integers. /// \param a First integer to compare. /// \param b Second integer to compare. //------------------------------------------------------------------------------ unsigned int min(unsigned int a, unsigned int b) { if (a < b) { return a; } else { return b; } } 好吧,很酷,所以我需要获取最小值并... 这个文件!因此,我需要为此打开整个项目吗?还是我需要重新发明数学? …
42 licensing  c  gpl 

5
C和C ++之间的根本区别是什么?[关闭]
许多人倾向于写“ C / C ++”,好像他们是同一回事。尽管它们具有许多相似之处,但是显然它们并不相同。 但是C和C ++之间真正的根本区别是什么?C ++是C的增强版本,还是C中有C ++中不存在的功能?
41 c++  c 

2
如何成为内核/系统/设备驱动程序程序员?[关闭]
我目前以软件工程师的身份从事Android操作系统的工作。我们致力于将平台作为本地守护程序集成到项目的其他方面。我主要从事Java开发SDK和Android应用程序的工作,但获得有关C / C ++平台的帮助。 任何人,我都非常有兴趣从事Linux的低级专业开发工作。我对目前的职位并不感到不满意,只要公司允许我徘徊(事实上,我很喜欢在那里工作!),但是我想朝这个方向努力。我一直在研究Linux内核开发(Robert Love)和Linux编程接口(Michael Kerrisk)(除了在每次获得机会时都增强我的C技能),并随意浏览Monster和类似的网站。 我看到的问题是,没有入门级职位。一个人如何进入这一领域?每当我看到“ Linux系统程序员”或“ Linux设备驱动程序程序员”时,他们都需要至少 5-7年的相关经验。他们想要的是一个懂行的人,而不是初级程序员(我已经工作了7个月了……)。 所以,我假设,一些从事stackoverflow的人以我想做的专业工作。你是怎么到达那里的?您使用什么平台在那工作?我是否会因为CSC的学士学位而不是计算机工程师(他们会遇到更多的嵌入式,ASM等问题)而变得更加困难? 编辑澄清! 我知道linux内核/驱动程序等的开源性质。无论我的工作在哪里,我都计划做出贡献。我更好奇什么样的入门级职位可以让我从事相关工作并获得报酬!感谢到目前为止的所有答复!
40 c  linux  linux-kernel 

3
为什么在C样式语言中逻辑NOT运算符是“!”而不是“ ~~”?
对于二进制运算符,我们同时具有按位和逻辑运算符: & bitwise AND | bitwise OR && logical AND || logical OR 但是,NOT(一元运算符)的行为有所不同。有〜用于按位和!为逻辑。 我认识到与AND和OR相对,NOT是一元运算,但是我无法想到设计师为何选择偏离单数位和双数逻辑的原则,而是改用其他字符的原因。我猜您可能读错了它,就像总是返回操作数值的双按位运算一样。但这对我来说似乎不是一个真正的问题。 我有什么原因想念吗?
39 java  c#  c++  c 

6
偏爱OOP语言后如何思考C程序员?[关闭]
以前,我只使用过面向对象的编程语言(C ++,Ruby,Python,PHP),现在正在学习C。我发现很难找出用一种没有概念的语言来做事的正确方法。 '宾语'。我意识到可以在C语言中使用OOP范例,但是我想学习C语言惯用的方式。 解决编程问题时,我要做的第一件事是想象一个可以解决该问题的对象。使用非OOP命令式编程范例时,我可以用哪些步骤替换它?

8
依靠标头包含传递性是一种好习惯吗?
我正在清理正在处理的C ++项目中的包含,并且我一直在想是否应该将直接使用的所有标头明确包含在特定文件中,还是应该仅包含最低要求。 这是一个例子Entity.hpp: #include "RenderObject.hpp" #include "Texture.hpp" struct Entity { Texture texture; RenderObject render(); } (让我们假设对它的前向声明RenderObject不是一种选择。) 现在,我知道其中RenderObject.hpp包括Texture.hpp-我知道,因为每个人RenderObject都有一个Texture成员。不过,我还是明确地将Texture.hppin 包含在内Entity.hpp,因为我不确定依赖于in是一个好主意RenderObject.hpp。 因此:这是一种好的做法吗?
37 c++  c  headers  include 

16
学习许多编程语言是否有害?
我从9年级开始用BASIC进行编程。通过编写简单的程序进行加,减和打印,我学到了一些BASIC。然后,我去了大学,并学习了计算机信息和系统工程。在第一年,我学习了C语言,并且对它有很好的命令。 接下来,我在第二年学习了C ++。它只是教会了我一些面向对象的知识。现在我正在做PHP(以及HTML)。我还没有掌握C ++,BASIC或PHP。我现在正计划转向移动开发。但是我觉得我并没有涵盖所学语言的所有内容。 真的有关系吗?
37 php  c++  c  basic 

17
我如何对自己的编程技能更有信心?[关闭]
编程对我来说并不陌生。我最初在12岁时开始做标记(HTML,现在请不要嘲笑我),在13岁时我开始做一些BASIC编程(此时我对Flowcharts,Pseudocodes非常了解),但后来我被告诫高中时期的生物学,因此错过了诸如C,Java等语言的“真实”编程知识。我为UG BE学习了CS(与BS类似,但更理论化)。我自己(在较小程度上)学习了C&C ++(我的教授感到非常痛苦,并且课堂上充斥着代码小丑(谁在学校已经学过了,因此没有注意课堂,也没有让像我这样的小凡人也不必专心听课)),并可以制作出很棒的加法或乘法程序(现在甚至是花木园的程序) 我的主要问题是,我总是对自己有限的编程技能感到不足和窒息,而对代码丑陋不屑一顾(相信我,我在很久以前就遇到过这个网站,但现在可能会鼓起勇气进行实际发布一个问题),有时甚至因上述无能而感到沮丧。大多数人说,编程不一定与语言有关,而是与人的心态以及他们用来解决问题/问题的技术有关。我同意这样的观点,但是我能获得这样的“心态”吗?如果这样的话,我应该如何进行“编程/编码”?如果有什么设定的方法和步骤可以最有效地达到“禅宗”呢?编码”。我该怎么做?同样,如果某些圣徒想指导这件被压倒的$#!^也不会有什么坏处。 PS:我将永远感激任何认为我值得他们度过时光的人,并且作为奖励,我将命名为我随他们发行的第一款软件。(如果我要运送一个,即) TL; DR:从未真正学习过“编程/编码”,即使我尝试也无法解决问题。帮我!

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.