小编Iha*_*imi的帖子

为什么我不能像这样使用struct?

为什么我不能像这样使用struct?

typedef struct { unsigned char FirstName; unsigned char LastName; unsigned int age; } User;
    User UserNick = {Nick, Watson, 24};

    NSLog(@"Your paint job is (R: %NSString, G: %NSString, B: %u)",
          UserNick.FirstName, UserNick.LastName, UserNick.age);
Run Code Online (Sandbox Code Playgroud)

我的意思是我确实使用了这样的结构:

typedef struct {unsigned char red; unsigned char green; unsigned char blue; } Color;
    Color carColor = {255, 65,0};

NSLog(@"Your paint job is (R: %hhu, G: %hhu, B: %hhu)",
    carColor.red, carColor.green, carColor.blue);
Run Code Online (Sandbox Code Playgroud)

struct objective-c

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

指定 C 编译器的头文件位置(使用 emscripten 编译 R 代码)

我在编译 C 代码方面相对缺乏经验。不过,我正在尝试使用 emscripten 将 R 源代码中的算法编译为 JavaScript。该函数位于此处调用的文件中pf.c

天真地,我刚刚进入src目录并尝试:

emcc nmath/pf.c 
Run Code Online (Sandbox Code Playgroud)

这导致:

In file included from nmath/pf.c:25:
nmath/nmath.h:38:10: fatal error: 'Rconfig.h' file not found
#include <Rconfig.h>
         ^
1 error generated.
ERROR    root: compiler frontend failed to generate LLVM bitcode, halting
Run Code Online (Sandbox Code Playgroud)

我知道这个标题在哪里:

$ find . -name "Rconfig.h"
./gnuwin32/fixed/h/Rconfig.h
Run Code Online (Sandbox Code Playgroud)

我的直接问题是,我如何告诉编译器这个头文件在哪里?我想最终得到一个pfJavaScript 函数。对这个想法的任何见解将不胜感激。

javascript c r emscripten

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

如果const char*在函数调用中转换为char*,则可能出现任何问题

在fun1()中我得到一个字符串,我需要将这个字符串数据传递给函数fun2(),它接受参数char*

function2原型如下

void fun2(char *p);
Run Code Online (Sandbox Code Playgroud)

我从fun1调用fun2,如下所示

void fun1()
{
    fun2((char *)str.c_str());
}
Run Code Online (Sandbox Code Playgroud)

从const char*到char*的转换是否存在任何潜在问题

c++ visual-c++

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

解释代码的输出

我最近被要求考虑以下代码的输出:

#include <iostream>
int gvar;
int main (void)
{
     cout << &gvar << endl;
     while (true);
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译此代码并生成可执行文件.如果这个可执行文件在run 2中并行运行.会打印什么

我的回答是它会打印2个不同的地址.但在跑步时,我发现两个终端都打印了相同的地址.

有人可以解释为什么会这样.我知道这可能是由于虚拟内存,但我无法将各个部分放在一起.

c++ global-variables output

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

在C中返回malloc

int* dec2bin(int y){
    int *arr = (int*)malloc(sizeof(int)*5);
    int i;

    for (i=0; i<5; i++) arr[i]=0;

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

这是函数dec2bin的一部分.
在这段代码,我做的arr[0]arr[4]的一切0.
但是这个函数返回值1070192.我想回来00000.
我该怎么做才能解决这个问题?

c malloc

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

返回char*或使用memcpy?

我正在尝试编写一个生成HTTP请求标头的函数.我现在有类似的东西

static char* genHeader() { 
    return("POST / HTTP/1.1\r\n\
            Host: www.example.com\r\n\
            Content-Type: application/x-www-form-urlencoded\r\n\r\n"); 
}
Run Code Online (Sandbox Code Playgroud)

我知道它也可以通过以下方式完成:

static void genHeader(char *header) { memcpy(header, ...); }
Run Code Online (Sandbox Code Playgroud)

哪一个更接近生成标题的"规范"方式?在第二种方法中,我需要释放内存,而在第一种方法中我不会,对吧?

谢谢

c http

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

类型铸造差异

在以下代码中:

#include<cstdio>
#define max(a,b) (a>b?a:b)
using namespace std;

int main()
{
    int f=10000000;

    long long i=(long long)max(1000000,f*f);
    printf("%lld",i);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到了输出

276447232

但如果我写

long long i=max((long long)1000000,(long long)f*f);
Run Code Online (Sandbox Code Playgroud)

我得到了输出

百兆

这两条线有什么区别?为什么在第一种情况下不会发生类型转换?

c++ algorithm syntax

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

n大小的C数组的第n个索引是否包含它的大小?

我编写了一个C程序,用于使用指针显示数组的值.这是代码:

#include <stdio.h>

int main()
{
    int a[] = {1, 1, 1, 1, 1};
    int *ptr = a;
    for (int i = 0 ; i < 5; i++)
        printf("%d ", *ptr++);
    printf("%d", *ptr);
}
Run Code Online (Sandbox Code Playgroud)

正如您在终止循环后所看到的那样,指针将数值的内存地址保存在数组之外.因为它没有初始化最后一个输出,它应该是一个垃圾值.但是,每次显示5是数组的大小.然后,我认为数组的已分配内存的下一个内存地址包含数组的大小.但是,双类型数组不会发生这种情况.

Output for int array : 1 1 1 1 1 5
Output for double array : 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 
Run Code Online (Sandbox Code Playgroud)

有人会解释输出吗?

c arrays pointers garbage

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

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

:意外令牌附近的语法错误`('?

谁能说出问题出在哪里?

someone@someone:~/Desktop$ cat morning.c
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
int main (int argc, char** argv)
{ 
  printf ("Good Morning") ; 
  return 0;
}
Run Code Online (Sandbox Code Playgroud)
someone@someone:~/Desktop/9raya$ ./morning.c
./morning.c: line 2: syntax error near unexpected token `('
./morning.c: line 2: `int main (int argc, char** argv)'
Run Code Online (Sandbox Code Playgroud)

我真的不知道问题出在哪里.

c linux gnu

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