沉默流星 发表于 2025-5-16 12:23:30

类型无法强转的问题

代码如下:
int read_func(void* ptr, uint8_t* buf, int buf_size)
{
    FILE* fp = (FILE*)ptr;
    size_t size = fread(buf, 1, buf_size, fp);
    int ret = size;
    printf("Read Bytes:%d\n", size);
    return ret;

}火山代码



小蜗牛 发表于 2025-5-16 12:51:32

指针不能转为类...如果可以就方便很多了

server 发表于 2025-5-16 12:58:53

本帖最后由 server 于 2025-5-16 12:59 编辑

你这不是方不方便的问题。
他这个写法都过不了C++编译器吧。
不能这样用类。
你至少 加个 &取类指针啊。
驴头驴头对不上马嘴驴头对不上马嘴 - -

你单纯的指针类型问题,那加个类型强转没问题。
你把类转成指针没得搞。只能加取址符

这还是基础尝试问题。

沉默流星 发表于 2025-5-16 13:04:32

server 发表于 2025-5-16 12:58
你这不是方不方便的问题。
他这个写法都过不了C++编译器吧。
不能这样用类。


你说错了,C++编译器是支持的,只是上层火山语法限制不让这样做.
跟C++基础牢固不牢固没啥关系.

沉默流星 发表于 2025-5-16 13:06:51

小蜗牛 发表于 2025-5-16 12:51
指针不能转为类...如果可以就方便很多了

这种目前我采用的嵌入方式来解决的.

server 发表于 2025-5-16 13:08:41

沉默流星 发表于 2025-5-16 13:06
这种目前我采用的嵌入方式来解决的.
如果C++ 支持的话,你直接使用 @ 嵌入代码. 可以避免 语法检查.
我不清楚你是 如何定义 文件类的

沉默流星 发表于 2025-5-16 13:11:44

server 发表于 2025-5-16 13:08
如果C++ 支持的话,你直接使用 @ 嵌入代码. 可以避免 语法检查.
我不清楚你是 如何定义 文件类的
...

是的,用嵌入是可以实现的。我想问的是不使用嵌入能不能解决这个问题

Xelloss0618 发表于 2025-5-16 13:21:01

一、uint8_t* 是无符号字节指针,不是字符;
二、文件类的别名类型改成本地整数基本类型,才可以强转;

沉默流星 发表于 2025-5-16 13:34:54

Xelloss0618 发表于 2025-5-16 13:21
一、uint8_t* 是无符号字节指针,不是字符;
二、文件类的别名类型改成本地整数基本类型,才可以强转; ...

无符号字节指针,官方类库中没搜到啊

Xelloss0618 发表于 2025-5-16 13:36:50

沉默流星 发表于 2025-5-16 13:34
无符号字节指针,官方类库中没搜到啊
当然是要自己封,或者统一用变整数也行
页: [1] 2
查看完整版本: 类型无法强转的问题