c语言-C语言typedef问题,原类型名还有用吗

问题描述

C语言typedef问题,原类型名还有用吗

typedef struct S{intg;char h;}T;以下叙述中正确的是(B)
(A) 可用S定义结构体变量
(B) 可用T定义结构体变量
(C) S是struct类型的变量
(D) T是struct类型的变量========书上说Typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效,为何答案A不对呢?参考答案是B,求大侠指教

解决方案

在C里面,光写S不行,要写struct S,或者T
C++可以直接用S

解决方案二:

可以的,只需要这s就行。

解决方案三:

可以这么理解
typedef 是将 struct S 取别名为 T
所以可以用T 或者 struct S

我想问一下,答案C对吗??^_^

解决方案四:

只是去别名,原来的名字当然可以用。在c里面,必须用struct S 来表明结构体类型。

解决方案五:

楼下说的很对,并且原类型名还是有用的,如果定义结构体时,结构体成员类型是关于struct S的时候,那么是不能使用T的,必须使用struct S 来声明

时间: 2024-12-02 03:23:48

c语言-C语言typedef问题,原类型名还有用吗的相关文章

C语言 typedef:给类型起一个别名_C 语言

C语言允许为一个数据类型起一个新的别名,就像给人起"绰号"一样. 起别名的目的不是为了提高程序运行效率,而是为了编码方便.例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写: struct stu stu1; struct 看起来就是多余的,但不写又会报错.如果为 struct stu 起了一个别名 STU,书写起来就简单了: STU stu1; 这种写法更加简练,意义也非常明确,不管是在标准头文件中还是以后的编程实践中,都会大量使用这种别名. 使用关键字 typede

初学C++之自定义类型名简化详解_C 语言

说明:本人使用的是vc++ IDE:vs2013 我在自定义一些类时,有时会取一些很长的名字,但是这不利于使用,这个时候就可以使用类型名简化. class MathAddBBBB { }; using MAB = MathAddBBBB; 除了使用using之外,我们还可以使用typedef来定义: typedef MathAddBBBB mab; mab m(); 以上这篇初学C++之自定义类型名简化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您

printf-(c语言)利用%ld读取double类型,程序可以运行,但是结果是很大的负数?

问题描述 (c语言)利用%ld读取double类型,程序可以运行,但是结果是很大的负数? #include #define TAX_1 17850 #define TAX_2 23900 #define TAX_3 29750 #define TAX_4 14875 #define TAXRATE_1 0.15 #define TAXRATE_2 0.28 int main(void) { double taxsalary,taxpay; int n; printf("Please enter

c语言-C语言gets函数会覆盖原内容吗

问题描述 C语言gets函数会覆盖原内容吗 # include main() { char a[20],b[]="The sky is blue.";int i; for(i=0;i<10;i++) scanf("%c",&a[i]); a[i]=0; gets(b); printf("%s%sn",a,b); } /* 1.程序运行结果为: Fig flower is red. Fig flower is red. */ ====

c语言-C语言中的类型名和类型能否互相转化

问题描述 C语言中的类型名和类型能否互相转化 在C语言中,有没有如下这样的功能:在运行时 struct test { /**/ } some_func1(test) ==>有没有类似some_func1的函数返回字符串""test""?some_func2(""test"")==>有没有这样的some_func2函数,返回类型test,并且可以通过这个返回值定义变量,如 some_func2(""

[Lua]Lua语言基础汇总(1) -- 类型与值

基础介绍 Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8种基本类型,分别是: nil(空)类型 boolean(布尔)类型 number(数字)类型 string(字符串)类型 userdata(自定义类型) function(函数)类型 thread(线程)类型 table(表)类型 以上是Lua中的8中基本类型,我们可以使用type函数,判断一个值得类型,type函数返回一个对应类型的字符串描述.例如: 1 2 3 4 5 6 7 8 9

Swift语言指南(七)--语言基础之布尔值和类型别名

原文:Swift语言指南(七)--语言基础之布尔值和类型别名   布尔值   Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false).Swift提供了两个布尔常量值:true,false: 1 let orangesAreOrange(橙子是橙子) = true 2 let turnipsAreDelicious(芜菁很美味) = false orangesAreOrange和turnipsAreDelicious被推

Go语言使用sort包对任意类型元素的集合进行排序的方法_Golang

本文实例讲述了Go语言使用sort包对任意类型元素的集合进行排序的方法.分享给大家供大家参考.具体如下: 使用sort包的函数进行排序时,集合需要实现sort.Inteface接口,该接口中有三个方法: 复制代码 代码如下: // Len is the number of elements in the collection.  Len() int  // Less reports whether the element with  // index i should sort before t

c语言-类型名与变量名冲突(c,c++)

问题描述 类型名与变量名冲突(c,c++) 使用两个动态库时: 一个库的头文件中:#define uc unsigned char 另一个库 头文件中:uchar uc; 编译时,提示: multiple types in one declaration in expantion of macro 'uc' 不能更改这两个库的变量名或类型名,怎么处理这种情况呢? 解决方案 使用命名空间区分 解决方案二: 可以用namespace 解决方案三: multiple types in one decl