相关疑难解决方法(0)

C99 stdint.h头文件和MS Visual Studio

令我惊讶的是,我刚刚发现MS Visual Studio 2003向上缺少C99 stdint.h.我确定他们有他们的理由,但有谁知道我可以在哪里下载副本?如果没有这个头文件,我就没有uint32_t等有用类型的定义.

c c++ c99 visual-studio

113
推荐指数
6
解决办法
13万
查看次数

Visual Studio 2005中的<inttypes.h>在哪里?

我想在Visual Studio项目中使用C99头文件inttypes.h(我想打印64位数字).

但是,我的安装中似乎不存在此文件.

这不是VS2005的一部分吗?还有其他选择吗?

c++ visual-studio-2005 c99

12
推荐指数
2
解决办法
8097
查看次数

跨平台VM的C内存管理

我问一个问题,关于C型尺寸,我得到一个很好的答案,但我意识到,我可能不会制定这个问题非常好是我的目的.

我的背景来自计算机工程师,然后转到软件工程师,所以我喜欢计算机架构,并且总是考虑制作VM.我刚刚完成了一个有趣的Java项目,我很自豪.但是有些法律问题我现在无法开源,而且我现在有空闲时间.所以我想看看我是否可以在C上制作另一个VM(速度更快),只是为了娱乐和教育.

事情是,我上次写一篇非琐事C问题时,我不是一个C程序,这是10多年前的事了.我是Pascal,Delphi,现在是Java和PHP程序员.

我可以预见有很多障碍,我正试图解决一个问题,那就是访问现有的库(在Java中,反射解决了这个问题).

我计划通过拥有一个数据缓冲区(类似于堆栈)来解决这个问题.我的VM客户端可以编程将数据放入这些堆栈,然后再指向本机函数.

int main(void) {
    // Prepare stack
    int   aStackSize = 1024*4;
    char *aStackData = malloc(aStackSize);

    // Initialise stack
    VMStack aStack;
    VMStack_Initialize(&aStack, (char *)aStackData, aStackSize);

    // Push in the parameters
    char *Params = VMStack_CurrentPointer(&aStack);
    VMStack_Push_int   (&aStack, 10  ); // Push an int
    VMStack_Push_double(&aStack, 15.3); // Push a double

    // Prepare space for the expected return
    char *Result = VMStack_CurrentPointer(&aStack);
    VMStack_Push_double(&aStack, 0.0); // Push an empty double for result

    // Execute
    void (*NativeFunction)(char*, char*) = &Plus; …
Run Code Online (Sandbox Code Playgroud)

c memory-management cross-platform low-level vm-implementation

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

C中的精确宽度整数类型(stdint.h)

我希望char,short和int类型的宽度为1,2和4字节.我在我的源代码中包含了一个stdint.h标题.这是否保证int8_t,int16_t和int32_t整数类型的宽度是指定的?实现这一目标的最佳方法是什么?

c size integer

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

不同微控制器中的可变大小是否相同?

如果我们在PIC单片机中定义一个变量"整数",那么当我在Atmel微控制器中定义相同的"int"变量时,它的大小是否相同?或者它会有不同的尺寸?

这个问题是在嵌入式系统的采访中,答案应该是什么?

我有点困惑!

它取决于微控制器还是编程语言?在所有不同的编程语言中,相同的变量类型如整数是否相同?

这不是同一个问题,因为嵌入式控制器有点不同.

c embedded microcontroller avr microchip

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