问题标签 [ansi-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”或“ANSI C++”今天仍然有意义吗?
上次我检查时,说您使用 ANSI C 编码等于说“这是符合 C99 的代码,其中没有其他内容”。现在有了 C11 和 C++11,这种区别还存在吗?它还有某种意义吗?
c - char* var 之间的区别;和 char *var;?
只是想知道之间是否有任何区别:
还是只是偏好问题(间距)?
c - 字符串终止 - char c=0 vs char c='\0'
当终止一个字符串时,在我看来这在逻辑上char c=0
等同于char c='\0'
,因为“null”(ASCII 0)字节是0
,但通常人们倾向于这样做'\0'
。这纯粹是出于偏好还是应该是更好的“做法”?
什么是首选?
编辑: K&R 说:“字符常量'\0'
表示值为 0 的字符,即空字符。'\0'
通常写成而不是0
强调某些表达式的字符性质,但数值只是0
.
c - C、C99、ANSI C 和 GNU C 有什么区别?
我已经开始在codechef上进行编程练习,并且对C 和 C99 之间的区别感到困惑。这里的 C 是什么意思?是C89吗?检查此提交底部的语言。它包含 C 和 C99。
我在互联网上发现了一个叫做 GNU C 的东西。对于 linux/unix 系统有不同的 C 吗?这些是否符合 ANSI 的 C 标准?我也在某些地方读过“C99 严格”。这是什么?
还有其他不同的 C 标准在使用吗?有什么叫做 C 4.3.2 的东西还是当前使用的 gcc 版本?
编辑:
我不是编程新手。我知道C语言是什么。我知道 ANSI 有不同的 C 标准,如 C89、C99 和 C11。
c# - Ansi C 用 C# 编程还是用 C# 方式编程?
大家好,我最近开始使用统一的 C# 进行游戏开发,并且进展顺利。我遇到的问题不在于我的代码的功能,而在于它的编码风格。我在高中学习了 4 年的 ANSI C,所以现在当我跳到 C# 时,我真的无法使用预制类(除了我在 C 中使用的那些被称为库的类)。在这一点上,我的代码看起来与 C 非常相似,但在实现 OOP 原则方面做了一些努力。恐怕如果其他 C# 开发人员查看此代码,他们会称其为草率且不可读(无论如何,我的 C 代码并不是最优雅的,正如您将看到的那样)。我一直是一只孤独的狼,尽我最大的努力自学,希望成为一名独立开发者。所以我没有团队任务的经验。
我确信有更好的方法在 C# 中执行这样的功能,但是停止开发以使用类和 C# 特定类型(如 List)来执行这些任务是否值得?我非常有兴趣从经验丰富的程序员那里获得意见,因为我完全是 C# 和 OOP 的菜鸟。
c++ - 谁定义了 C 运算符优先级和关联性?
介绍
在每本关于 C/C++ 的教科书中,您都会找到一个运算符优先级和关联性表,如下所示:
http://en.cppreference.com/w/cpp/language/operator_precedence
StackOverflow 上的一个问题是这样的:
以下函数执行的顺序是什么:
f1() * f2() + f3();
f1() + f2() * f3();
参考前面的图表,我自信地回答说函数具有从左到右的关联性,因此在前面的语句中,在两种情况下都像这样评估:
f1() -> f2() -> f3()
评估功能后,您可以像这样完成评估:
(a1 * a2) + a3
a1 + (a2 * a3)
令我惊讶的是,很多人告诉我我完全错了。决心证明他们错了,我决定转向 ANSI C11 标准。我再次惊讶地发现,很少有人提到运算符优先级和关联性。
问题
- 如果我认为函数总是从左到右进行评估的信念是错误的,那么表中提到函数优先级和关联性的真正含义是什么?
- 如果不是 ANSI,谁来定义运算符优先级和关联性?如果是ANSI做出定义,为什么很少提及运算符优先级和关联性?运算符优先级和关联性是从 ANSI C 标准推断出来的,还是在数学中定义的?
c - C中的多维数组:它们是锯齿状的吗?
关于 C 编程语言 (ANSI-C) 的一个简单问题:
C 中的多维数组是锯齿状的吗?
我的意思是-我们是在谈论“数组数组”(一个指向内存中其他地址的指针数组),还是只是“长一维数组”(按顺序存储在内存中)?
困扰我的是,我有点确定:
matrix[i][j]
相当于* ( * (matrix + i) + j)
c - -> 和点有什么区别
在 C 程序中,当我定义一个结构时。
在什么情况下我会使用“->”以及在什么情况下使用“。” ?
例如
我什么时候用barbar.bar
,什么时候用barbar->bar
?
c - 函数 invertNumerSubstrings 不起作用
我在 Ansi C 中有这个问题
3 创建一个函数,该函数接收每个解码的 20 个字符的字符串数组,考虑以下几点:从左到右读取它,数字表示从那里要投入多少个字符(要投入的字符之间可以是数字,因此,被认为是普通字符)。
湾。数字字符应替换为反转字符串的第一个字符。
例子。字符串 aj5pr2*dfkl3abc2qwe1azk 必须是 ajd*2rpfklcbawqeazk
使用符号和指针算术
这个程序没有编译错误,但没有工作
c - 如何理解 char *fptr = NULL, *field; 的含义?
我想知道下面的表达式是什么意思:
谢谢!