Tag: 初始化

C Struct中的缺省值

我有这样的数据结构: struct foo { int id; int路由; int backup_route; int current_route; } 和一个叫做update()的函数,用来请求它的变化。 更新(42,dont_care,dont_care,new_route); 这真的很长,如果我添加一些东西的结构,我必须添加一个'dont_care'每EVERY更新(…)。 我正在考虑传递一个结构,而不是事先在“dont_care”中填充结构,而不是在函数调用中拼写。 我可以创build结构的默认值不考虑的地方,只是设置我关心的领域之后,我声明它作为一个局部variables? struct foo bar = {.id = 42,.current_route = new_route}; 更新(巴); 什么是最优雅的方式来传递我想expression更新function的信息? 我希望其他所有的东西都默认为-1('不关心'的密码)

“int * ptr = int()”的值初始化是不是非法的?

下面的代码(取自这里 ): int* ptr = int(); 在Visual C ++中编译并初始化指针。 这怎么可能? 我的意思是int()产生一个inttypes的对象,我不能指定一个int指针。 上面的代码是不是非法的?

BOOL的默认值

Objective-C中BOOLvariables的默认值是多less?

我怎样才能初始化在Java中的长度为0的string数组?

该方法的Java文档 String[] java.io.File.list(FilenameFilter filter) 在返回描述中包含这个: 如果目录为空或者filter没有接受名称,则数组将为空。 我如何做一个类似的事情,并初始化一个string数组(或任何其他数组)的长度为0?

C ++在哪里初始化静态常量

我有一堂课 class foo { public: foo(); foo( int ); private: static const string s; }; 哪里是在源文件中初始化strings的最佳位置?

为什么在Swift中甚至需要关键字关键字?

由于Swift支持方法和初始化方法的重载,所以你可以把多个init放在一起,并使用你认为合适的方法: class Person { var name:String init(name: String) { self.name = name } init() { self.name = "John" } } 那么为什么convenience关键字甚至存在? 是什么使得以下更好? class Person { var name:String init(name: String) { self.name = name } convenience init() { self.init(name: "John") } }

声明并初始化打字稿中的字典

给出以下代码 interface IPerson { firstName: string; lastName: string; } var persons: { [id: string]: IPerson; } = { "p1": { firstName: "F1", lastName: "L1" }, "p2": { firstName: "F2" } }; 为什么不初始化被拒绝? 毕竟,第二个对象没有“lastName”属性。

为什么默认情况下不使用NULL初始化指针?

有人可以解释为什么指针没有初始化为NULL ? 例: void test(){ char *buf; if (!buf) // whatever } 如果因为buf不为null,程序不会进入。 我想知道为什么,在什么情况下,我们需要一个带有垃圾的variables,特别是指向内存垃圾的指针?

初始化一个字节数组到一个特定的值,而不是默认的空值?

我忙于用C ++重写一个旧的项目,C#。 我的任务是重写程序,使其function尽可能接近原始。 在一堆文件处理过程中,编写这个程序的以前的开发人员创build了一个包含大量字段的结构,这些字段对应于文件必须写入的设置格式,所以所有这些工作已经完成了。 这些字段都是字节数组。 C ++代码然后使用memset将整个结构设置为所有空格字符( 0x20 )。 一行代码。 简单。 这是非常重要的,因为该文件最终要使用的实用程序正在期待这种格式的文件。 我所要做的就是把这个结构体改为C#中的一个类,但是我找不到一种方法来简单地将这些字节数组初始化为所有的空格字符。 我最终要做的是在类的构造函数中: //Initialize all of the variables to spaces. int index = 0; foreach (byte b in UserCode) { UserCode[index] = 0x20; index++; } 这工作正常,但我确定必须有一个更简单的方法来做到这一点。 在构造函数中将数组设置为UserCode = new byte[6] ,字节数组会自动初始化为默认的空值。 难道我没有办法使它成为声明中的所有空间,所以当我打电话给我的类的构造函数,它是这样直接初始化? 或者一些memset的函数?

方便的C ++结构初始化

我试图find一个方便的方式来初始化“pod”C ++结构。 现在,考虑下面的结构: struct FooBar { int foo; float bar; }; // just to make all examples work in C and C++: typedef struct FooBar FooBar; 如果我想方便地在C(!)中初始化它,我可以简单地写: /* A */ FooBar fb = { .foo = 12, .bar = 3.4 }; // illegal C++, legal C 请注意,我想明确地避免以下表示法,因为如果我在将来更改结构中的任何内容 ,它会使我打破我的脖子: /* B */ FooBar fb = { […]