C语言中,用结构体作函数参数的问题? 30
假如我定义了一个结构体和一个函数,如下:typedefstruct{charr;charg;charb;}RGBColorvoidtest(RGBColorcolor){...
假如我定义了一个结构体和一个函数,如下:
typedef struct {
char r;
char g;
char b;
} RGBColor
void test (RGBColor color) {
...
}
在引用test函数时,可以这样:
RGBColor color = {0x0,0x1,0x2} ;
test(color);
但我想直接给RGBColor的值,例如:
test({0x0, 0x1, 0x2})
但这样keilc会报错!
请问有什么办法可以不需要重新定义一个RGBColor的变量,而直接在函数引用时赋值吗? 展开
typedef struct {
char r;
char g;
char b;
} RGBColor
void test (RGBColor color) {
...
}
在引用test函数时,可以这样:
RGBColor color = {0x0,0x1,0x2} ;
test(color);
但我想直接给RGBColor的值,例如:
test({0x0, 0x1, 0x2})
但这样keilc会报错!
请问有什么办法可以不需要重新定义一个RGBColor的变量,而直接在函数引用时赋值吗? 展开
展开全部
当然可以了,首先定义一个RGBColor结构体
typedef struct {
char r;
char g;
char b;
} RGBColor;
然后定义一个结构体变量
RGBColor color;
然后定义一个函数给color中的三个变量都赋值如:
void test(int a,int b,int c)
{
color.r=a;
color.g=b;
color.b=c;
}
typedef struct {
char r;
char g;
char b;
} RGBColor;
然后定义一个结构体变量
RGBColor color;
然后定义一个函数给color中的三个变量都赋值如:
void test(int a,int b,int c)
{
color.r=a;
color.g=b;
color.b=c;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似不是很好搞,如果是C++里面还可以用new,但是如果没有变量名的话也不好delete。所有还是老老实实用前面的方法。我觉得就多一句话没什么大不了的,性能也不见得就一定优化了多少。
如果代码非要写的只有自己看的懂,而别人都很难看懂的话。其实不是表示你多牛X,而说明你的代码维护起来非常复杂。
不要非要学习孔乙己回字有多少种写法,如果你能掌握一种,ok,够了。你能够完成相应的功能,别人一看就懂了。这就行了。
如果代码非要写的只有自己看的懂,而别人都很难看懂的话。其实不是表示你多牛X,而说明你的代码维护起来非常复杂。
不要非要学习孔乙己回字有多少种写法,如果你能掌握一种,ok,够了。你能够完成相应的功能,别人一看就懂了。这就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef struct RGBColor{
RGBColor( char _r,char _g, char _b ): r(_r),g(_g),b(-b){}
char r;
char g;
char b;
} RGBColor;
void test (RGBColor color) {
}
//////////////////调用///////////////////
test(RGBColor('a','b','c'));
不知道这样满足你的要求不?
RGBColor( char _r,char _g, char _b ): r(_r),g(_g),b(-b){}
char r;
char g;
char b;
} RGBColor;
void test (RGBColor color) {
}
//////////////////调用///////////////////
test(RGBColor('a','b','c'));
不知道这样满足你的要求不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以设置r,g,b为全局变量,对全局变量赋值后 ,如果想要改变值,可以在函数内部再赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询