小编box*_*box的帖子

GCC如何实现可变长度数组?

GCC如何实现可变长度数组(VLA)?这些数组是否基本上指向动态分配的存储,例如alloca返回的存储?

我能想到的另一个选择是,这样的数组被分配为函数中的最后一个变量,因此在编译时可以知道变量的偏移量.但是,在编译期间,第二个VLA的偏移量将再次不知道.

c arrays gcc

20
推荐指数
2
解决办法
5920
查看次数

在Visual Studio中使用FFmpeg

我正在尝试在Visual Studio 2010中的C++项目中使用FFmpeg.我想将这些库包含为静态链接文件.像libavcodec/api-example.c这样的简单程序编译时没有错误,启动它们时错误视图中不会出现链接器错误.但是,启动应用程序后会显示一个消息框,说avutil-51.dll丢失.你有任何关于如何解决这个问题的提示吗?

我使用了http://ffmpeg.zeranoe.com/builds/上的最新开发版.然后我指定include作为附加包含目录,avcodec.lib; avfilter.lib; avformat.lib; avutil.lib作为附加依赖项,lib指定为附加库目录.

windows ffmpeg visual-studio

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

调用本机方法时JVM必须做什么?

在调用声明为的Java方法时,JVM运行时必须执行的常规步骤是native什么?

HotSpot 1.8.0 JVM如何实现JNI函数调用?涉及哪些检查步骤(例如返回后未处理的异常?),JVM要执行哪些簿记(例如本地参考注册表?),以及在调用本机Java方法后控制在哪里?如果有人可以提供本机HotSpot 1.8.0代码的入口点或重要方法,我也将不胜感激.

免责声明:我知道我可以自己阅读代码,但事先的解释有助于快速找到我的代码.此外,我发现这个问题值得谷歌搜索.;)

java java-native-interface jvm

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

Java中的x86 80位浮点类型

我想模拟x86扩展精度类型,并在Java中执行算术运算和转换为其他类型.

我可以尝试使用BigDecimal来实现它,但覆盖NaNs,无限和强制转换的所有特殊情况可能是一项单调乏味的任务.我知道有些库提供的精度高于double的其他浮点类型,但我想要与x86 80位浮点数具有相同的精度.

是否有提供这种浮点类型的Java库?如果没有,您是否可以提供其他提示来实现这样的数据类型,而不是提出自定义BigDecimal解决方案?

java floating-point precision x86-emulation

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

使用 javax.print 打印时选择纸盒/托盘

我想在使用 Java 打印时指定输入箱。我找到了 MediaTray 类,它应该对应于输入箱:

The following standard values are defined for input-trays (from ISO
DPA and the Printer MIB):

'top': The top input tray in the printer.
'middle': The middle input tray in the printer.
'bottom': The bottom input tray in the printer.
'envelope': The envelope input tray in the printer.
'manual': The manual feed input tray in the printer.
'large-capacity': The large capacity input tray in the printer.
'main': The main input tray
'side': The side input tray …
Run Code Online (Sandbox Code Playgroud)

java printing

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

AMD64阵列中的AMD64未对准:为什么没有性能下降?

我试图通过在C中错位数组导致性能下降.我的机器有一个64字节的缓存,因此我在程序中使用了64字节的步长,从未对齐的地址开始.但结果与使用正确对齐的访问时保持一致.使用多个数组也没有改变任何东西.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 10000000
#define DATATYPE long
#define ALIGNMENT __alignof__(DATATYPE)
#define CACHE_SIZE 64
#define STEP_SIZE (CACHE_SIZE / sizeof(DATATYPE))
#define NR_ARRAYS 20
#define ALIGNMENT_OFFSET 1

DATATYPE arr[N];

DATATYPE sum(DATATYPE **ptr, int size) {
    DATATYPE sum = 0;
    int i, j;
    for (i = 0; i < size; i += STEP_SIZE) {
        for (j = 0; j < NR_ARRAYS; j++) {
            sum += ptr[j][i];   
        }
    }   
    return sum;
}

int main() {
    DATATYPE *arrs[20];
    int i; …
Run Code Online (Sandbox Code Playgroud)

c arrays x86-64 alignment

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