我想定义一个名为Int_1_100_Type
的类型,它是一个integer
变量,范围从1到100. 我该如何定义这个?
例如: 我传递此变量,它接受Int_1_100_Type
类型的变量的函数, funca(Int_1_100_Type Var1)
定义整数范围C
Q
定义整数范围C
11
A
回答
5
你不能,C没有这样的功能。你当然可以键入一个int:
typedef int int_1_100_Type;
但是没有办法限制它的范围。在C++中,您可以使用此功能创建一个新类型,但我认为很少有人会打扰 - 您只需要在使用该类型的函数中进行范围检查。
1
您不能在整数的范围内放置这种限制。
你当然也可以typedef
也无妨:
typedef int int_1_100;
甚至更好:
typedef unsigned int int_1_100;
但没有用C可以防止你写:
int_1_100 x = 1000;
要实现的东西像这样,你需要隐藏实现,但这会使初始化变得更加困难ize值(并且不可能在堆栈中完整地隐藏类型的值)。
0
0
c没有办法定义一个必须在特定范围内的类型。但是,您可以检查功能中的每个值,例如
int funca(int Var1)
{
assert(Var1 >= 1);
assert(Var1 < 101);
...
}
4
当然可以。所有你需要的是一点点的基于对象的C.
如果你这样做在自己创建一个结构文件和一些成员
typedef struct s_foo {
int member;
} Foo;
Foo* newFoo(int input); // ctor
void get(Foo *f); // accessor
强制你的病情的突变/男星
文件,你也可以隐藏类的impl,你可以做oo-like C
+0
(Grr ...在评论中没有格式化) 在最近几个月里,我学到了一个更好的方法。这有点复杂,但是这里是简短的版本。添加“newFoo”和“get”作为struct Foo(包含函数指针的成员)的成员,并且您可以在单独的C文件中实现“newFoo”和“get”作为静态函数,只要您有构建器对于Foo(这将提供封装,实现隐藏(某个级别)和一个很好的抽象接口来创建Foo类型的对象) – shiva 2010-12-17 03:21:23
相关问题
- 1. 定义范围值
- 2. $范围未定义
- 3. 模糊工具:预定义范围内的整数变量?
- 4. 整数范围到矢量
- 5. Ruby中的整数范围
- 6. 整数范围和上溢
- 7. 分区整数为范围
- 8. 整数列表到范围
- 9. Oracle SQL Group整数范围
- 10. C++函数范围
- 11. 如何使用rxjs发出一定范围的特定范围内的整数
- 12. 命名函数定义范围
- 13. 嵌套函数定义和范围(UnboundLocalError)
- 14. 未定义jquery函数 - 范围问题?
- 15. JFreeChart域/范围轴定义
- 16. 如何定义$ ionicLoading范围?
- 17. 自定义范围输入
- 18. $范围未定义 - codepen
- 19. 定义动态范围
- 20. 用范围内定义
- 21. preg_replace自定义范围
- 22. 数组整数到范围数组
- 23. 从matplotlib中定义的范围调整x-ticks
- 24. 将浮点范围转换/量化到整数范围
- 25. 范围验证器 - 检查整数范围时输入字母
- 26. 将[0-255]整数范围转换为[0.0-1.0]浮点范围
- 27. 给定一些整数范围,找到每个范围至少包含一个整数的最小集合
- 28. 计数范围内的整数
- 29. 匹配整数数值范围在Python
- 30. C++'map'数字范围
为什么downvote?仅仅因为OP想要做的事情不能用C来完成,并不意味着这个问题不够明确和合理。 – 2010-04-14 12:12:49
你为什么要这样做?如果你的函数需要输入一个特定的范围,你可以对一个普通的'int'变量进行边界检查。 – tzaman 2010-04-14 12:16:32
@tzaman如果语言支持它(和一些),这是一个很好的功能,并避免在各处编写范围检查。 – 2010-04-14 12:30:41