18得票3回答
在 Ansi C 中的位设置和位移

有人可以解释一下这个位运算符号的语法吗? #define Bitset(var,bitno) ((var) |=1UL<<(bitno)) 我知道它会设置var的位,但我无法理解语法。

7得票4回答
嵌套的typedef结构体

我在尝试嵌套结构体时遇到了问题,需要将其声明为新变量类型。代码如下 - typedef struct { typedef struct { int day, month, year; } Date; ...

105得票5回答
一个人在哪里可以找到C89/C90标准的PDF格式?

我正在寻找免费的C89/C90标准副本,但是我无法在任何地方找到它!为什么这么难找呢? C99和C11标准非常容易在互联网上获得副本。即使在Stack Overflow的问题Where do I find the current C or C++ standard documents?和Th...

33得票4回答
ANSI C与其他C标准的区别

在我使用的几个编译器(全部是gcc,但版本不同)中,如果我在for循环表达式中而不是之前声明int i之后,则会收到类似于声明C99模式错误的提示(如果我没有使用std=c99选项)。从这里读取后,我了解到gcc选项-ansi、-std=c89和-std=iso9899:1990都等同于ANS...

8得票2回答
atof()用于float而非double

atof() 返回一个 double 类型的值,当我将其赋给 float 值时会产生警告(是的,我必须使用 float)。 所以我的问题是:是否有一个可用的 atof() 变体可以返回一个普通的 float?还是我必须通过转换来解决这个问题 - 这将很遗憾,因为它浪���了创建一个将立即被丢...

11得票3回答
如果我包含“-ansi”编译器选项,为什么我的C++0x代码无法编译?

我遇到了一个非常奇怪的错误,只有在使用 ansi 标志时才会出现。 #include <memory> class Test { public: explicit Test(std::shared_ptr<double> ptr) {} }; 这是编...

9得票3回答
ANSI C中的接口/实现

我正在使用C语言开发一个大型项目,希望能够使用接口(.h)和实现(.c)文件进行组织,类似于许多面向对象的语言如Objective-C或Java。我熟悉在C语言中创建静态库,但我认为这样做对我的项目来说过于复杂。我该如何在ANSI C中实现接口/实现范式?我主要使用GCC进行编译,但我希望严格...

8得票4回答
字符串数组转换

我有以下代码: char *array1[3] = { "hello", "world", "there." }; struct locator_t { char **t; int len; } locator[2] = { { ...

11得票6回答
结构体指针兼容性

假设我们有两个结构体: typedef struct Struct1 { short a_short; int id; } Struct1; typedef struct Struct2 { short a_short; int id; short ...

12得票3回答
如何在 ANSI C 中 printf 带重音的字符(例如á é í ó ú)

我尝试使用一些重音字符(如á é í ó ú)进行printf: printf("my name is Seán\n"); DEVC++ IDE中的文本编辑器显示它们很好 - 即源代码看起来很好。我猜我需要使用stdio.h之外的某个库,也许是普通printf的某个变体。 我正在使用运行...