Linux c中怎么检测一个结构体中是否存在某个变量 20

判断后的返回0或1... 判断后的返回0或1 展开
 我来答
kaixingui2012
推荐于2016-06-17 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6395万
展开全部

c语言中定义一个结构体,其变量在编译时就确定好了。而且,编译后,变量的名称就不存在了,换成了相应的内存地址信息。所以,在运行时,再去检查某个变量是否存在,是不合理的操作,系统是不支持的。

可以做的工作是:检测结构体中的变量的值是否为0。如:

#include <stdio.h>
#include <string.h>
struct data {
    int num;
    char name[11];
    int age ;
} student ;
void main()
{
    memset( &student, 0, sizeof(student) ); //清理结构体内容为0
    if ( student.num==0 ) //如果没有数据,则录入数据
    {
        printf("input stu_num: ");scanf("%d", &student.num );
        printf("input stu_name: ");scanf("%s", student.name );
        printf("input stu_age: ");scanf("%d", &student.age );
    }
}
代码没有实际意义,只在说明问题。
百度网友fc027fc
2015-04-03 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:779万
展开全部
定义一个结构体 struct A a;
assert(a.变量名);
更多追问追答
追问
assert(a.变量名)表示什么含义
追答
assert是个断言,运行时出错可以报错。在这里是不必要的,你要判断结构体是否包含某个变量,直接引用一下就行,没有的话,编译会出错。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式