相关疑难解决方法(0)

不使用sizeof的数据类型的大小

比方说我有一个数据类型,X我想知道它的大小而不声明该类型的变量或指针,当然不使用sizeof运算符.

这可能吗?我想过使用标准头文件,其中包含数据类型的大小和范围,但不适用于用户定义的数据类型.

c sizeof

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

C - 不能将我的sizeof实现用作数组大小

按照建议实现了sizeof .当我想打印变量的大小时它工作正常,但我不能将它用作数组大小.

这是代码:

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

#define my_sizeof(var) (size_t)((char *)(&var+1)-(char*)(&var))

int s = 7;

void main()
{
    int arr[sizeof(s)]; //works OK
    int arr2[my_sizeof(s)];//error
    printf("%d\n", my_sizeof(s));//works OK
    int temp = 0;
}
Run Code Online (Sandbox Code Playgroud)
Error   1   error C2057: expected constant expression
Error   2   error C2466: cannot allocate an array of constant size 0
Error   3   error C2133: 'arr2' : unknown size  
Run Code Online (Sandbox Code Playgroud)

c

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

标签 统计

c ×2

sizeof ×1