社区
C语言
帖子详情
在C语言下为什么这样初始化不行
toadzw
2010-09-29 08:25:26
typedef struct {
pthread_mutex_t sql_mutex1;
}ORACLE_CONNECT={PTHREAD_MUTEX_INITIALIZER};
在C语言下为什么这样初始化不行,我看书是这样搞的,可我自己这样做就不行;
...全文
282
25
打赏
收藏
在C语言下为什么这样初始化不行
typedef struct { pthread_mutex_t sql_mutex1; }ORACLE_CONNECT={PTHREAD_MUTEX_INITIALIZER}; 在C语言下为什么这样初始化不行,我看书是这样搞的,可我自己这样做就不行;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
x642458
2010-10-01
打赏
举报
回复
[Quote=引用 22 楼 zrebecca 的回复:]
类型名不可以当变量的呀
[/Quote]
zrebecca
2010-10-01
打赏
举报
回复
类型名不可以当变量的呀
lodgersore
2010-10-01
打赏
举报
回复
加了typedef,就是定义结构体啊,当然是不行的。。。
就呆在云上
2010-10-01
打赏
举报
回复
[Quote=引用 4 楼 toadzw 的回复:]
error: typedef `ORACLE_CONNECT' is initialized (use __typeof__ instead)
[/Quote]
这不说的很清楚了?
请使用typeof
keanoz
2010-10-01
打赏
举报
回复
去掉typedef,则ORACLE_CONNECT是一个变量名;不去掉,则它是这个类型的别名。
lz的语法相当于:int = a;
wizard_tiger
2010-09-30
打赏
举报
回复
ORACLE_CONNECT是一个自定义类型与int,float都一样都是类型名不是变量名。
旭子
2010-09-30
打赏
举报
回复
书山是错的!
greex
2010-09-30
打赏
举报
回复
这个与编译器有关,VC6不一定过,但VC2010应可以的。
xiaoyuer5222
2010-09-30
打赏
举报
回复
[Quote=引用 18 楼 crazy_akai 的回复:]
引用 8 楼 toadzw 的回复:
struct {
int allcount;
}ORACLE_CONNECT={2};我也不知道为什么,在linux C下面就是通不过
明显不行嘛,结构体连名称都没有,应该在struct后面加上一个名称,像这样
struct
oracle
{
int allcount;
}ORACLE_CONNECT={2};这样就没问题了
[/Quote]
小标签是可以有可以没有的,如果没有小标签,则在定义结构时必须同时定义此结构类型相关的对象,或者用typedef给此结构定义别名
crazy_akai
2010-09-30
打赏
举报
回复
[Quote=引用 8 楼 toadzw 的回复:]
struct {
int allcount;
}ORACLE_CONNECT={2};我也不知道为什么,在linux C下面就是通不过
[/Quote]
明显不行嘛,结构体连名称都没有,应该在struct后面加上一个名称,像这样
struct oracle{
int allcount;
}ORACLE_CONNECT={2};这样就没问题了
jernymy
2010-09-29
打赏
举报
回复
PTHREAD_MUTEX_INITIALIZER 是一个pthread_mutex_t类型的就可以了。
时间一粒
2010-09-29
打赏
举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]
因为ORACLE_CONNECT不是一个变量名,而是一个类型名
[/Quote]
UP
cardinaleaf
2010-09-29
打赏
举报
回复
去掉就可以啊
xgbing
2010-09-29
打赏
举报
回复
typedef去掉,汗
dingshaofengbinbin
2010-09-29
打赏
举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]
因为ORACLE_CONNECT不是一个变量名,而是一个类型名
[/Quote]
YES
东大坡居士
2010-09-29
打赏
举报
回复
[Quote=引用 6 楼 toadzw 的回复:]
struct {
int allcount;
}ORACLE_CONNECT={2};我也不知道为什么,在linux C下面就是通不过
[/Quote]
可以编译通过啊~~~~~
dooX8086
2010-09-29
打赏
举报
回复
去掉 typedef 按道理应该可以。
不行的话〜〜可能关于C编译器对于"匿名"支持有关(猜想)
toadzw
2010-09-29
打赏
举报
回复
struct {
int allcount;
}ORACLE_CONNECT={2};我也不知道为什么,在linux C下面就是通不过
pengzhixi
2010-09-29
打赏
举报
回复
你用了typedef 那么ORACLE_CONNECT是一个类型名,而非一个变量名
toadzw
2010-09-29
打赏
举报
回复
struct {
int allcount;
}ORACLE_CONNECT={2};我也不知道为什么,在linux C下面就是通不过
加载更多回复(5)
C语言
的二维数组
初始化
的几种方式介绍(私藏大数组
初始化
方式)
C语言
的二维数组
初始化
的几种方式介绍1、直接赋值2、循环对每个元素赋值3、借用memset/memset_s
初始化
为0或-14、`数组所有元素
初始化
为相同值` 1、直接赋值 适合数组元素较少的,各元素的值可以不同。 int[2][3] arr...
C语言
常见问题——数组
初始化
的四种方法
他说,“学过编程,我便考一考你,在使用数组之前,应不应该
初始化
数组?”我暗想,这么简单的问题,也配考我么?不只是数组,在使用任何变量之前,都应该对变量进行
初始化
,这是一个编程的好习惯,可以有效避免许多...
c语言
中什么是指针
初始化
,
C语言
中的“char指针
初始化
”是什么意思?
其
初始化
本质上与其它变量
初始化
没有什么区别,就是赋予其一个
初始化
的值。对于指针来说,在
C语言
中,就是一个地址。区分
初始化
情况,有四种表象:1
初始化
为空。即char * str = NULL;的形式,NULL在
C语言
中是特定...
c语言
如何
初始化
程序,浅谈
C语言
的
初始化
跟大家啰嗦一句,在
C语言
中,变量的第一次赋值,被称为变量的
初始化
。首先我们来看
C语言
中最常用的普通变量,首先大家测试一下一下的代码:int c;printf("%d\n", c);这是一顿很简单的代码,但...
结构体成员数组怎么
初始化
c语言
,
c语言
,结构体数组怎么
初始化
在
c语言
中用于进行
初始化
的程序结构则称为
初始化
器或
初始化
列表。1、
初始化
器
初始化
器是声明器的可选部分,它由一个'='以及其后的一个表达式(或含有多个以','隔开的带圆括号表达式的单一列表)所组成。后面这一列表...
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章