小编Omk*_*ant的帖子

有符号和无符号整数如何存储在c中?

我试图运行以下代码,但与这里发生的事情混淆:

int main()
{
 /* 
    a = -1; 
    b = 0xffffffff; 
 */
if(-1 == 0xffffffff )
        printf("-1 is equal to maximum\n");
else
        printf(" -1 is not equal to maximum\n");

if(0xff < -1)
        printf(" Less than -1 \n");
if(0xff < 0xffffffff)
        printf(" Less than maximum\n");
Run Code Online (Sandbox Code Playgroud)

我也尝试了注释部分,用"a"替换-1,用"b"替换0xffffffff但结果相同.

这是32位系统所以我采用整数大小4字节.

我的输出是:

-1 is equal to maximum
 Less than maximum
Run Code Online (Sandbox Code Playgroud)

如果-1等于最大值,那么它应该执行最后两个if语句.但它没有发生.为什么?

c

6
推荐指数
1
解决办法
6237
查看次数

什么是StringCbprintf,这与一般的sprintf有什么不同?

我正在阅读以前编写的代码,并找到了StringCbPrintf()函数

我在msdn网站上发现了这样的声明:

HRESULT StringCbPrintf(
  _Out_  LPTSTR pszDest,
  _In_   size_t cbDest,
  _In_   LPCTSTR pszFormat,
  _In_    ...
);
Run Code Online (Sandbox Code Playgroud)

什么是_in__out_这里?

为什么我们已经拥有它需要它sprintf()

c c++ windows winapi printf

6
推荐指数
1
解决办法
2586
查看次数

y = x ++中有多少个原始步骤?

y=x++;
Run Code Online (Sandbox Code Playgroud)

在没有优化而不是CPU级别或指令的情况下,它在编译器级别中断了多少个步骤?是否创建任何临时值以将x分配给y,或者直接发生?

c c++ post-increment

5
推荐指数
2
解决办法
360
查看次数

如何直接在C++中打印十六进制值?

我们%x在 C 中可以像这样将任何十进制值打印为十六进制值

printf("%x",a); // here a is having some integral value
Run Code Online (Sandbox Code Playgroud)

类似地,我们是否可以直接在 C++ 中打印它而无需任何额外的努力或无需添加额外的头文件,例如<iomanip>

c++ hex

3
推荐指数
1
解决办法
3967
查看次数

三合字母

c99 standard  5.2.1.1 Trigraph sequences
Run Code Online (Sandbox Code Playgroud)

2 示例以下源代码行

printf("Eh???/n");
Run Code Online (Sandbox Code Playgroud)

变成(在替换三字母序列之后??/)

printf("Eh?\n");
Run Code Online (Sandbox Code Playgroud)

据说它将替换三合字母序列,但事实并非如此。

正在打印 "Eh???/n"

我错过了什么吗?

c trigraphs

2
推荐指数
1
解决办法
1120
查看次数

用c ++引用数组

问题是制作10个整数的数组,这很好

int array[10];
Run Code Online (Sandbox Code Playgroud)

现在的问题是

如何使一个referencearray我上面声明?

我试过这个

int &ra = a;
Run Code Online (Sandbox Code Playgroud)

但它给我的错误...请提供有关此错误,以及如何使细节referencearray.

c++ arrays reference

1
推荐指数
1
解决办法
2704
查看次数

如何在c中将数组的值赋给另一个数组(制作副本)?

我想复制2d数组并将其分配给另一个.

在python我会做这样的事情

grid = [['a','b','c'],['d','e','f'],['g','h','i']]
grid_copy = grid
Run Code Online (Sandbox Code Playgroud)

我想在C中做同样的事情.

char grid[3][3] = {{'a','b','c'},{'d','e','f'},{'g','h','i'}};
Run Code Online (Sandbox Code Playgroud)

如何将此数组复制到copy_grid?

c arrays char multidimensional-array

1
推荐指数
2
解决办法
2万
查看次数

这个*(取消引用运算符)在枚举声明中做了什么?

在代码中走进其他一些代码,我发现* 这是什么?

这是该代码的原型,并没有给出任何错误.只有警告随附gcc 4.5.2但在Windows上它不会发出警告并正确编译.由于公司的IP,我无法提供实际代码,但我想知道这是如何以及为什么这是正确的?

#include<stdio.h>

typedef enum e
{
        a,
        b,
        c
}x,*y;

int main()
{
        x t=4;
        printf("x : %d\n",t);
        y m=5;
        printf("*y : %d\n",m);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

c enums pointers

0
推荐指数
2
解决办法
209
查看次数

这是什么类型的行为?

这个问题正在寻找一个明确解释为什么这种行为是错误的标准引用.

以下代码包括<stdio.h>内部main,

int main()
{
 #include <stdio.h>
 printf("hello , world \n");
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

On gcc -Wall in.c -o in.outIt成功编译和打印hello , world.

但是clang in.c -o in.out它给了我这个错误:

/usr/include/stdio.h:353:12: error: implicit declaration of 'fprintf' requires 

inclusion of the header <stdio.h>
extern int fprintf (FILE *__restrict __stream,
           ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

我怀疑这是什么行为?这种未定义的行为还是什么?

此外,我无法找到与其相关的文档.

编辑:问题是,我发现这个代码在某个地方类似于它,但我不能完全发布那个代码所以我发布了这种演示代码.我知道stdio.h在主要之外的放置.

c c++ gcc clang

0
推荐指数
1
解决办法
147
查看次数

这个for循环中发生了什么

我正在尝试其他的东西,但突然陷入这种无限循环.请建议一个答案,并解释下面的循环内容

#include<stdio.h>

int main()
{
 int x=0;
 int i;
 int array[5];
 for(i=0;i<=5;i++)
 {
  array[i]=x;
  printf("#%d value set in index %d\n",x,i);
 }

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我=for循环条件中删除符号它工作正常.

但是,当我把它放到无限循环时,为什么?在数组中访问额外元素(超过其限制)是未定义的行为还是什么?任何帮助将不胜感激.提前致谢.

c arrays for-loop

-2
推荐指数
1
解决办法
166
查看次数