小编Fan*_*c23的帖子

C结构中的柔性阵列构件

引自C-std部分6.7.2.1,

struct s { int n; double d[]; };
Run Code Online (Sandbox Code Playgroud)

这是一个有效的结构声明.我正在寻找这种语法的一些实际用途.确切地说,这个构造如何比保持double*作为第二个元素更强或更弱?或者这是"你可以做多种方式"的另一种情况吗?

Arpan

c c99 flexible-array-member

5
推荐指数
3
解决办法
3664
查看次数

Boost type_traits is_array

我一直试图通过Boost类型特征标题,并且由于无数#define提供了强烈的不可读性,现在感觉很恶心.还有一些#define.

具体来说,我有兴趣弄清楚以下3个特征:如果类型T是数组,类或枚举.

任何人都可以帮助建议破解明显疯狂背后的方法吗?就像你从一种类型,任何相关阅读材料等中找出特征的背后的理论一样

c++ boost type-traits

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

当我不为 main 创建方法+基本块时,CreateGlobalStringPtr 崩溃

CreateGlobalStringPtr 中发生以下崩溃:

#include "llvm/Support/DataTypes.h"
#include "llvm/LLVMContext.h"
#include "llvm/Module.h"
#include "llvm/Constants.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/GenericValue.h"
#include "llvm/Support/IRBuilder.h"

#include <vector>
#include <cstdio>
#include <string>

int main()
{
  llvm::LLVMContext & context = llvm::getGlobalContext();
  llvm::Module *module = new llvm::Module("asdf", context);
  llvm::IRBuilder<> builder(context);
  llvm::Value *helloWorld = builder.CreateGlobalStringPtr("hello world!\n"); // crash here
}
Run Code Online (Sandbox Code Playgroud)

而这个不知道这里发生了什么:

#include "llvm/Support/DataTypes.h"
#include "llvm/LLVMContext.h"
#include "llvm/Module.h"
#include "llvm/Constants.h"
#include "llvm/Function.h"
#include "llvm/BasicBlock.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/GenericValue.h"
#include "llvm/Support/IRBuilder.h"

#include <vector>
#include <cstdio>
#include <string>

int main()
{
  llvm::LLVMContext …
Run Code Online (Sandbox Code Playgroud)

llvm llvm-3.0

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

出现错误时如何退出rpm安装

如果某些条件为假,我正在寻找一种退出 rpm 安装的方法。我在 %pre 部分添加了一个小脚本,如果我的条件失败,它会退出安装。

我面临的问题是我看到 %pre scriptlet 已执行,并且 rpm 安装失败。然而,在它的最后,我得到了这 2 行我不想要的 - 已安装......然后是完成!

Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
missing file zyWhg1. exiting install..
error: %pre(tyr-3.2.1.x86_64) scriptlet failed, exit status 255
error:   install: %pre scriptlet failed (2), skipping tyr-3.2.1

Installed: tyr-3.2.1.x86_64 0:3.2.1
Complete!
Run Code Online (Sandbox Code Playgroud)

rpm rpmbuild rpm-spec

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

从ruby调用时返回shell脚本的状态值?

我希望这些值匹配.由于某些错误条件而导致shell脚本退出时,它们不匹配(因此返回非零值).壳牌$?返回1,红宝石$?返回256.

>> %x[ ls kkr]
ls: kkr: No such file or directory
=> ""
>> puts $?
256
=> nil
>> exit
Hadoop:~ Madcap$ ls kkr
ls: kkr: No such file or directory
Hadoop:~ Madcap$ echo $?
1 
Run Code Online (Sandbox Code Playgroud)

ruby

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

将64位应用程序中的protobuf消息编码并在32位应用程序中解码吗?

Proto n00b.我在64位应用程序中编码protobuf消息,接收方是32位应用程序.这是当时的架构,我试图了解这是否有效.

除了float和double之外,大多数proto标量类型似乎都有一个定义的大小.所以我认为这应该有效.但是,如果在这样的环境中还有其他事情需要关注,我不知道,因此请求帮助.

谢谢!!

c++ protocol-buffers

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

为什么Python在返回C字符串时会崩溃?

这是我的C代码,我用它创建了一个共享库.当我在Python中加载共享库并执行下面的Python代码时,我崩溃了.为什么?

extern "C" { 
PyObject* foo2(char* b) 
{
  return Py_BuildValue("s", b);
}

}
Run Code Online (Sandbox Code Playgroud)

这就是我在Python中所做的事情:

   from ctypes import *
   d = cdll.LoadLibrary('./foo.so')
   d.foo2.restype = c_char_p
   v  = d.foo2('hello world')
   print pythonapi.PyString_Size(v)
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我在Python2.6.

c python ctypes

5
推荐指数
2
解决办法
207
查看次数

C++开源前端的选项

我正在寻找开源C++编译器前端(源解析器/分析器)的选项,我可以根据我的要求进行自定义.我不需要后端实现,只是它有助于找到支持大多数标准功能的快速且相对无错误的C++前端.有什么建议?

[我确实谷歌,clang似乎是一个选项,但在我开始之前我更喜欢同行反馈.]

Arpan

c++ compiler-construction

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

为什么c#没有联盟?

我试图理解为什么C#没有工会的技术背景.我明白使用具有显式结构布局的属性机制可以解决问题,我更感兴趣的是为什么这比vanilla union构造更受欢迎.

c#

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

设计模式监控分布式系统?

我有一个分布式系统:12个应用程序在10个盒子上运行(每个盒子有大约8个核心).我的应用程序是多线程的.

在一天中,我的应用程序非常繁忙.延迟对我的工作至关重要.

鉴于这种情况,我有一个新的额外要求,我必须监视分布在这些应用程序中的一堆内存对象并生成一些报告(可能是网页或文本文件无关紧要).

我正在寻找与监测工作相关的设计模式.困扰我的是,我不应该通过某些监视/观察者线程做任何令人讨厌的事情来引入任何延迟.如果它有所帮助,我现在主要是C++,所以像共享内存等低级别的东西肯定在桌面上.

design-patterns distributed-computing

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