Tag: 结构

C空结构 – 这是什么意思/做什么?

我在一个需要使用的设备的头文件中find了这个代码,尽pipe我已经做了C多年,但我从来没有遇到过这样的情况: struct device { }; struct spi_device { struct device dev; }; 它用在: int spi_write_then_read(struct spi_device *spi, const unsigned char *txbuf, unsigned n_tx, unsigned char *rxbuf, unsigned n_rx); 也在这里: struct spi_device *spi = phy->spi; 在哪里定义相同。 我不确定这个定义有什么意义。 它是在一个Linux的应用程序的头文件,但令人困惑的使用它。 任何解释,想法? 任何人以前见过这个(我相信你们有一些:)。 谢谢! :BP:

C#结构新的StructType()与默认(StructType)

说我有一个结构 public struct Foo { … } 有什么区别吗? Foo foo = new Foo(); 和 Foo foo = default(Foo); ?

编写MATLAB代码的好习惯?

我想了解编写结构良好的代码的基本原则和礼节。

在C中返回值优化和复制elision

有些人没有意识到可以按C中的值传递和返回结构 。 我的问题是关于在C中返回结构时编译器做不必要的拷贝。像GCC这样的C编译器使用返回值优化(RVO)优化还是C ++唯一的概念? 我所读到的关于RVO和copy elision的一切都是关于C ++的。 我们来看一个例子。 我目前正在C中实现一个double-double数据types (或者浮动浮动开始,因为我发现很容易unit testing)。 考虑下面的代码。 typedef struct { float hi; float lo; } doublefloat; doublefloat quick_two_sum(float a, float b) { float s = a + b; float e = b – (s – a); return (doublefloat){s, e}; } 编译器是否会创build我返回的doublefloat值的临时副本,或者临时副本是否可以被删除? 那么C中的命名返回值优化(NRVO)呢? 我有另一个function doublefloat df64_add(doublefloat a, doublefloat b) { doublefloat […]

重叠等值法在结构中的应用

我已经寻找结构的压倒一切的指导方针,但我能find的只是课程。 起初,我想我不会检查,看看传递的对象是否为null,因为结构是值types,不能为空。 但现在我想起来了,就像平等签名一样 public bool Equals(object obj) 似乎没有任何东西阻止我的结构的用户试图比较它与任意的引用types。 我的第二点是关于在我比较我的结构中的私有字段之前,我想(我想)。 我该如何将对象转换为我的结构types? C#的关键字似乎只适用于引用types。

结构中的C函数

我试图创build一个结构内的function,到目前为止,我有这样的代码: typedef struct client_t client_t, *pno; struct client_t { pid_t pid; char password[TAM_MAX]; // -> 50 chars pno next; pno AddClient() { /* code */ } }; int main() { client_t client; //code .. client.AddClient(); } 错误 : client.h:24:2:error:expected':',',',';','}'或' attribute'before '{'token。 哪种方法是正确的?

你如何在Rails中构buildi18n yaml文件?

我开始在Rails中填充一个en yaml文件,我已经可以告诉它在太久之前会变得杂乱无章。 有没有一个约定来保持这个文件的组织? 到目前为止,我有这样的结构: language: resource: pages: # index, show, new, edit page html elements: # h1, title activerecord: attributes: model: property: 现在我有以下的东西,我想适应这种结构,但我不确定如何: 导航 button文字(保存更改,创build帐户等) 控制器闪存中的错误消息 如何添加多字键。 我使用空格还是下划线? 例如, t(".update button") )或t(".update_button") 是否有一个地方文件结构的约定?

如何使一个“结构”按定义可以为空?

struct AccountInfo { String Username; String Password; } 现在,如果我想要一个Nullable实例,我应该写: Nullable<AccountInfo> myAccount = null; 但是我想使struct Nullable的性质,它可以像这样使用(不使用Nullable<T> ): AccountInfo myAccount = null;

在C中,堆栈和堆创build“类”?

每当我看到一个C“类”(任何结构的意图是通过访问函数,将指针作为第一个参数使用),我看到他们这样实现: typedef struct { int member_a; float member_b; } CClass; CClass* CClass_create(); void CClass_destroy(CClass *self); void CClass_someFunction(CClass *self, …); … 在这种情况下, CClass_create总是malloc它的内存并返回一个指针。 每当我看到new C ++不必要的时候,它通常会使C ++程序员疯狂,但这种做法在C中似乎是可以接受的。 为什么堆分配结构“类”是如此普遍背后有什么理由?

解除指向不完整types的指针

我已经看到了很多关于这个问题的问题,但是我会以不同的方式提出问题。 是否有一种方法容易确定是什么导致types不完整? 在我的情况下,我正在使用别人的代码,我完全相信我没有正确的标题,但(因为电脑做这个东西比人眼更快,更好)有没有办法让编译器说,“嘿,你认为你在第34行input了X,但实际上是缺less的 。 错误本身只在您分配时显示,这不是很有帮助。