0

我正在用 c neon 内在函数制作一个关于 bmp 文件解析的程序。这些函数需要一个指向源文件目标的 const int .. 但是通过使用 fstream 和 fopen a 获取指向源的文件对象。那么如何将其转换为 const int 指针

4

1 回答 1

-1

你可以试试这个:

const int *intFile = (int *)fopen("path-to-file.bmp", "r");

您始终可以使用强制转换将指向某种类型的指针分配给指向任何其他类型的指针,例如:

int i;
int  *ptrInt  = &i;        // this doesn't need a cast
char *ptrChar = (char*)&i; // this does need a cast

在这种情况下,ptrChar指向 的“第一个”字节i。这个“第一个”字节可以是 LSB 或 MSB,具体取决于您的机器分别使用小端或大端。

请注意,如果谨慎使用,进行此类转换非常有用,但涉及低级概念,并且可能不安全。

现在,您始终可以直接将指针分配给相同类型的 const 指针:

char c;
char *pc = &c;
const char *cpc = pc;

所以,没必要写const int *intFile = (const int*) ...

在最后一个示例中,不能通过 修改const char *cpc手段,即,是“指向 const char 的指针”:ccpccpc

*cpc   = 'H';   // error
cpc[0] = 'j'; // error
于 2012-08-04T07:29:00.683 回答