社区
C语言
帖子详情
关于typedef 的问题 请教,不难
sean717
2003-03-23 10:40:29
先做以下定义:
typedef float vec3_t[3];
在main函数以前做以下定义以及初始化 可通过编译:
vec3_t newCube[24]={{1,2,3}};
但是在其它的函数里面再用
vec3_t newCube[2]={{1,2,3}};
则编译器报错
请问是为什么?我要怎么给newCube符值?
...全文
80
10
打赏
收藏
关于typedef 的问题 请教,不难
先做以下定义: typedef float vec3_t[3]; 在main函数以前做以下定义以及初始化 可通过编译: vec3_t newCube[24]={{1,2,3}}; 但是在其它的函数里面再用 vec3_t newCube[2]={{1,2,3}}; 则编译器报错 请问是为什么?我要怎么给newCube符值?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhouzhaohan
2003-03-24
打赏
举报
回复
typedef 只是一个类型定义,不同于定义变量,其只在他所在文件中起作用,而且只有在它被定义了之后,才会起作用。所以把它定义在头文件里,然后什么c文件要用到它,就include那个头文件。这种东西没有什么全局不全局的。
bailingke
2003-03-24
打赏
举报
回复
建议楼主看书
了解什么是typedef
本来很容易理解的
langzi8818
2003-03-23
打赏
举报
回复
迷茫中^^^^^^^^
CForum
2003-03-23
打赏
举报
回复
不知道是不是WARNING的等级的问题,可将WARNING等级降到最低试一下。
sean717
2003-03-23
打赏
举报
回复
对了,在赋值的时候,可不可以一次给一“行”的数据赋值?
象我问题中的
typedef float vec3_f[3];
vec3_f newCube 这样的数组
可否在赋值时 newCube[5]=... 就象初始化时一样 语法要怎么写?
谢谢大家帮忙
sean717
2003-03-23
打赏
举报
回复
哎,真奇怪,还是不行
我已经把typedef宜到我唯一的头文件里面去了
仍然说有错
point_to
2003-03-23
打赏
举报
回复
是不是不认识vec3_t??
在main函数前定义typedef float vec3_t[3];
让任何函数可见之;
初始化可以用{}
也可用循环来赋值
Jinglihui
2003-03-23
打赏
举报
回复
我也在其它函数里作了测试,也没有出现错误!
代码我就不贴了!
只要typedef float vec3_f[3];声明为全局的,在其它函数里这样使用是可以的:vec3_f newCube1[2]={{1,2,3}};
bailingke
2003-03-23
打赏
举报
回复
他的意思可能是,在头文件中那样定义typedef
然后在cpp文件中使用
如果在其他的工作中
不包含这样的头文件
当然就出错了
Jinglihui
2003-03-23
打赏
举报
回复
下边的代码是我关于你这个问题的测试代码,我在bcc5.5下编译,没有问题
#include<iostream>
using namespace std;
typedef float vec3_f[3];
void main()
{
vec3_f newCube[24]={{1,2,3}};//它只是对这个24行3列的数组的第一行进行赋值,其它行的全为0
for (int i=0;i<24;i++)
{
for(int j=0;j<3;j++)
cout<<newCube[i][j]<<" ";
cout<<endl;
}
vec3_f newCube1[2]={{1,2,3}};
for (int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
cout<<newCube1[i][j]<<" ";
cout<<endl;
}
}
【C语言】
typedef
的使用
本文详细介绍了C/C++中的
typedef
关键字,包括基本用法、指针、结构体的别名创建,以及进阶的数组指针、指针函数等复杂用法。通过实例展示了
typedef
如何提升代码可读性和理解性,并对比了
typedef
与#define的区别。了解这些,有助于提升代码规范性和维护性。
C++
typedef
以及
typedef
struct 用法
本文详细介绍了C++中
typedef
关键字的作用与用法,并对比了其与#define的区别。此外,还深入探讨了
typedef
在定义结构体时,在C与C++中的不同用法。
[SystemVerilog]
Typedef
本文详细介绍了SystemVerilog中
Typedef
的用法。
Typedef
可创建用户定义类型别名,提高代码可读性、可维护性和复用性。文中阐述了其与基本类型、复合类型、数组、类等的结合,以及在硬件设计和验证中的应用,还给出注意事项与最佳实践,并推荐了设计工具。
typedef
enum &
typedef
struct
本文详细介绍了C++中的
typedef
用法,包括如何为枚举类型enum创建别名,以及
typedef
struct的使用。
typedef
可以给现有类型创建新的名字,方便代码的可读性和可维护性。同时,文章提到了
typedef
在处理枚举和结构体时的注意事项,如避免同名的枚举类型和成员,以及
typedef
与存储类关键字的使用限制。
typedef
的用法
本文详细介绍了C/C++中
typedef
的四种用途,包括定义类型别名、简化struct声明、创建平台无关类型以及简化复杂声明,并强调了
typedef
与#define的区别。同时,文章提到了
typedef
的两大陷阱,一是const与
typedef
结合时的误解,二是
typedef
不能与存储类关键字如static、extern等同时使用。最后,
typedef
在跨平台开发和代码可读性方面的优势也被提及。
C语言
70,039
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章