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

问题描述

C语言中的类型名和类型能否互相转化
在C语言中,有没有如下这样的功能:
在运行时
struct test
{
/**/
}

some_func1(test) ==>有没有类似some_func1的函数返回字符串""test""?
some_func2(""test"")==>有没有这样的some_func2函数,返回类型test,并且可以通过这个返回值定义变量,如 some_func2(""test"") test_value?

解决方案

你的想法都错了,类型(比如int)本身就是一个字符串,还用的着和一个引号括起来的类型(比如""int"")互相转换???你当int这三个字符代表一个整数。。。

解决方案二:
没有看懂你的函数声明,some_func1(test)中的test是参数类型?一个值可以初始化变量,不过还没听说过可以定义变量,下来你可以再仔细看看你的问题

时间: 2024-12-31 01:59:48

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

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里面,

如何在C语言的宏中使用类型关键字_C 语言

如下所示: 复制代码 代码如下: // 在C语言的宏中使用类型关键字#include <stdio.h> #define PRINT_AS_TYPE(i,TYPE) printf("%d ", (TYPE)i) int main(int argc, char *argv[]){ float x= 9; PRINT_AS_TYPE(x, int);  return 0;}

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

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

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

C语言、C++中的union用法总结_C 语言

开始的话 已经好长时间没有更新了,对不起自己,更对不起我亲爱的读者,同时也对不起自己开办的这个博客平台.忙,太忙了,忙于找工作,找一份好工作,纠结于去大城市闯呢,还是回到本省的首府城市.大家都在纠结这个问题,也希望大家和我讨论讨论.别的先不说了,都工作这么长时间了,还回过头来总结union,确实有点过分,要是和大家说我一直从事于C++开发,还不懂union,大家可能还真的不信.我们每天都在总结那些看似高端的东西,什么设计模式(当然我也有总结了).重构(后期我也会说的了)了,却忽略了那些最基础,最

详解C语言结构体中的函数指针_C 语言

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式,用函数指针指向相应函数,以此达到调用函数的目的. 函数指针 函数类型 (*指针变量名)(形参列表):第一个括号一定不能少. "函数类型"说明函数的返回类型,由于"()"的优先级高于"*",所以指针变量名外的括号必不可少.  注意指针函数与函数指针表示

Go语言的方法接受者类型用值类型还是指针类型?_Golang

概述 很多人(特别是新手)在写 Go 语言代码时经常会问一个问题,那就是一个方法的接受者类型到底应该是值类型还是指针类型呢,Go 的 wiki 上对这点做了很好的解释,我来翻译一下. 何时使用值类型 1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型). 2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存给 slice,使用值类型. 3.如果接受者是一个小的数组或者原生的值类型结构体类型(比如 time.Time 类

计蒜客 C语言 泥塑课中结构体的使用时,typedef使用与否的区别

问题描述 计蒜客 C语言 泥塑课中结构体的使用时,typedef使用与否的区别 代码一: #include typedef struct student{ int l; int w; int h; int v; char name[9]; }stu[10]; void func(int n){ int i, ave = 0, robber, victim; for(i = 0; i < n; i ++){ scanf("%d %d %d %s", &stu[i].l, &

c语言-C语言在#define中带参数出错,为什么

问题描述 C语言在#define中带参数出错,为什么 #include #define FUNC(X,Y) (1/(X)+1/(Y)) int main(void) { double x=FUNC(2,2); printf("%lfn",x); return 0; } 在VS2013中编译没有错误,但是输出结果是0.000000,为什么?是#define用错了吗? 解决方案 In C the divide between int also return int so 1/2=0 so