小编Edw*_*rak的帖子

什么是内存块?

C书一直在讨论内存块,但我从未理解它们究竟是什么.内存块是一个数组吗?一个大的存储单元?例如:

malloc(2*sizeof(int));  /*This allocates a block*/
Run Code Online (Sandbox Code Playgroud)

c

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

浮动和长期之间的异常转换

我发现了一个非常复杂的函数,这是一个快速平方根的实现.老实说,我不明白这个功能是如何工作的,但是a long和a 之间的以下转换float引起了我的注意:

i  = *(long *) &y; 
Run Code Online (Sandbox Code Playgroud)

我留下完整的代码

inline float Q_rsqrt(float number)
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = *(long *) &y;                      
    i  = 0x5f3759df - (i >> 1);            
    y  = * (float *) &i;
    y  = y * (threehalfs - (x2 * y * y));  

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

c floating-point casting bit-manipulation

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

程序的执行输出

为什么下面给出的程序打印-128

#include <stdio.h>
main()
{
    char i = 0;
    for (; i >= 0; i++)
        ;
    printf("%d",i);
}
Run Code Online (Sandbox Code Playgroud)

我也可以将int值赋给char而无需对其进行类型转换.如果我在for循环中使用了print语句,则打印到127这是正确的,但是这个程序当前打印-128.为什么

c

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

程序不会在第二次扫描时读取()

我不明白我哪里出错了.它在第二次读取时不会scanf()跳到下一行.

#include <stdio.h>
#define PI 3.14

int main()
{
    int y='y', choice,radius;
    char read_y;
    float area, circum;

do_again:
    printf("Enter the radius for the circle to calculate area and circumfrence \n");
    scanf("%d",&radius);
    area = (float)radius*(float)radius*PI;
    circum = 2*(float)radius*PI;

    printf("The radius of the circle is %d for which the area is %8.4f and circumfrence is %8.4f \n", radius, area, circum);

    printf("Please enter 'y' if you want to do another calculation\n");
    scanf ("%c",&read_y);
    choice=read_y;
    if (choice==y)
        goto do_again;
    else
        printf("good bye"); …
Run Code Online (Sandbox Code Playgroud)

c scanf

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

%=运算符有什么作用?

什么是%=运营商做的,如本例所示:

if (a > b)
   a %= b;
Run Code Online (Sandbox Code Playgroud)

它有什么用途,是否常用?

c#

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

为什么void指针指向任何东西?

当某些东西被转换为无效时,则该值变为NULL.但是,为什么void*指向任何数据类型?虚空指针不应该没用吗?

c

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

使用c#创建菜单弹出按钮

我想用C#创建菜单弹出窗口.我试过这个

List<string> l = new List<string>();
l.Add("Rotate");
l.Add("Scale");
l.Add("Bring to Front");
l.Add("Send to Back");
MenuFlyout m = new MenuFlyout();
MenuFlyoutItem mn = l;
m.Items.Add(mn);
Run Code Online (Sandbox Code Playgroud)

它给出了错误,怎么做?

xaml winrt-xaml windows-8.1

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

将 2 位数年份转换为 4 位数年份

我如何将这样格式的两位数年份转换为四年:

02 -> 2002
87 -> 1987
Run Code Online (Sandbox Code Playgroud)

ETC...

到目前为止我所拥有的:

char shortYr[3];
char longYr[5];
scanf("%2s", shortYr);
int shortYrAsInt = atoi(shortYr);

if (shortYrAsInt < 99)
    ;
Run Code Online (Sandbox Code Playgroud)

我该如何转换它?在网上,我读到了如何将 4 位数字转换为 2 位数字,这很容易,但是其他方法呢?

c 2-digit-year

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

在WinAPI中的单词旁边画一条线

如何在带有C的WinAPI中绘制像"Counts"这样的单词旁边的这样一行?

https://drive.google.com/file/d/0B2XoQDQTCSrNbnlSVTFENDM0ZmM/view?usp=sharing

c user-interface winapi

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

在 C 中打印哈希值

我正在尝试在 C 中打印 SHA256 哈希值,但是当我使用下面所示的 for 循环时,打印哈希值的唯一方法是将换行符添加到 printf 中。理想情况下,我想将其全部打印在一行上。

void enclave_main()
{
    char string[] = "Hello World";
    int x;

    unsigned char digest[SHA256_DIGEST_LENGTH];
    SHA256_CTX sha256;
    SHA256_Init(&sha256);
    SHA256_Update(&sha256, string, strlen(string));
    SHA256_Final(digest, &sha256);

    for(x = 0; x < SHA256_DIGEST_LENGTH; x++)
        printf("%02x\n", digest[x]);

    sgx_exit(NULL);
}
Run Code Online (Sandbox Code Playgroud)

c hash hex byte sha256

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