相关疑难解决方法(0)

C++中的Struct构造函数?

可以struct在C++中有一个构造函数吗?

我一直试图解决这个问题,但我没有得到语法.

c++ constructor struct

343
推荐指数
15
解决办法
52万
查看次数

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 gcc c99 c89 ansi-c

115
推荐指数
4
解决办法
7万
查看次数

dot(.)在struct初始化程序中的含义是什么?

static struct fuse_oprations hello_oper = {
  .getattr = hello_getattr,
  .readdir = hello_readdir,
  .open    = hello_open,
  .read    = hello_read,
};
Run Code Online (Sandbox Code Playgroud)

我不太了解这个C语法.我甚至无法搜索,因为我不知道语法的名称.那是什么?

c c99 designated-initializer

107
推荐指数
3
解决办法
3万
查看次数

我以前没见过的CGRect语法

我在一些示例代码中看到了下面的语法,我不确定我是否理解它.

 CGRect imageRect = (CGRect){.size = baseImage.size};
Run Code Online (Sandbox Code Playgroud)

这只是一种初始化CGRect等价物的简便方法:

 CGRect imageRect = CGRectMake(0,0,baseImage.size.width, baseImage.size.height);
Run Code Online (Sandbox Code Playgroud)

这种语法有什么好处,除了稍微减少输入?

core-graphics ios

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

初始化结构数组

这是我刚刚在其他人的问题中找到的初始化.

my_data data[]={
    { .name = "Peter" },
    { .name = "James" },
    { .name = "John" },
    { .name = "Mike" }
};
Run Code Online (Sandbox Code Playgroud)

我之前从未见过这样的东西,也找不到解释.name可能是正确的.
我正在寻找的是这个过程如何逐步进行.

它看起来像是:

1) data;
2) *data;
3) (*data).name;
4) (*data).name="Peter";
Run Code Online (Sandbox Code Playgroud)

或者我完全错了?

c arrays struct initialization

23
推荐指数
3
解决办法
13万
查看次数

C结构初始化?

如果结构中的一个字段本身是一个结构,我如何初始化结构?

c structure initialization

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

用里面的struct类型初始化一个struct

我想创建一个struct Person,它由两个struct类型和一个变量组成.我如何初始化和使用struct Person呢?

struct name{
   char *firstName;
   char *lastName;
} name;

struct address{
   char *street;
   int number;
} address;

struct person{
   struct name fullName;
   struct address fullAddress;
   int age;
} person;
Run Code Online (Sandbox Code Playgroud)

c struct

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

Linux如何知道调用哪个ioctl函数?

这是ioctl用户空间中的调用:

int ioctl(int fd, int cmd, ...);
Run Code Online (Sandbox Code Playgroud)

据我所知,当我们想要执行IO操作时,我们ioctl使用一组请求(命令)定义我们自己的函数,将我们分配ioctlfile_operations结构,如下所示:

struct file_operations fops = {
 .read = device_read,
 .write = device_write,
 .ioctl = device_ioctl, // device_ioctl is our function
 .open = device_open,
 .release = device_release,
};
Run Code Online (Sandbox Code Playgroud)

device_ioctl用户空间接口相比,该功能的定义不同:

static long device_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
Run Code Online (Sandbox Code Playgroud)

我认为基于文件描述符,内核可以获得适当的文件结构并调用设备ioctl.

这只是一个猜测,因为我找不到通用函数定义,其中内核ioctl根据fd传递到泛型ioctl接口的文件描述符选择适当的函数?ioctl我只能找到3个定义,但显然那些只是设备的定义,而不是内核:ioctl

c linux ioctl linux-device-driver linux-kernel

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

结构初始化错误

我知道如何初始化结构(通常),但我在结构体中遇到了这个结构的麻烦

typedef struct Location{
    uint8_t x;
    uint8_t y;
} loc;

typedef struct Person{
    loc location;
} person;
Run Code Online (Sandbox Code Playgroud)

全局变量:

static person hero;
Run Code Online (Sandbox Code Playgroud)

初始化函数:

void InitializeHero() {
    person hero = {0,0, {0,0}}; // this compiles
    hero.location = {0,0}; // but this does not compile
    hero = {0,0,{0,0}}; // this also does not compile
}
Run Code Online (Sandbox Code Playgroud)

c struct initialization

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

struct的部分初始化?

是否可以静态初始化结构的一部分?

我有这样的结构:

   struct data {
    char name[20];
    float a;
    int b;
    char c;
};
Run Code Online (Sandbox Code Playgroud)

初始化和打印时:

struct data badge = {"badge",307};
printf("%s,%d\n", badge.name, badge.b);
Run Code Online (Sandbox Code Playgroud)

这将打印出"徽章",但不会打印出"307".

我怎样才能使用char name[20]int b而忽略它float a.

c

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