是否可以在C中使用我决定的字节数创建一个新类型? 我知道一个int占用4个字节,但是我需要处理非常小的数字,因此为每个int分配4个字节的malloc有点浪费,我在考虑为仅占用1个字节的数字创建一个新类型。 ..如果可能的话
答案 0 :(得分:2)
是否可以在C中使用我决定的字节数创建一个新类型?
是的,您可以声明一个<?php
$file = fopen("/file/location","r");
while(!feof($file)){
echo fgets($file);
echo "<br>";
}
fclose($file);
?>
<html>
<form name="form" action="" method="get">
<input type="text" name="subject" id="subject" value="Car Loan">
</form>
</html>
<?php
echo $_GET['subject'] . file_put_contents("/file/location", $_GET['subject'], FILE_APPEND);
?>
(或char
或signed char
)数组,该数组的长度取决于您的喜好,但取决于实现的限制(但通常较大)。
我知道一个int占用4个字节,
您误会了:unsigned char
可能占用四个字节,但是标准不要求这样做。它的最小所需范围只能用两个字节表示,某些实现确实提供了两个字节的int
。从历史上看,这比今天更为普遍。同样,实现可以使int
更大大于四个字节。作为默认值,这种情况很少见,但是某些编译器提供了产生该结果的选项。
但是我需要使用非常小的数字,因此为每个int分配4个字节的malloc有点浪费,我当时正在考虑为数字创建一个仅占用1个字节的新类型...如果可能的话。
一个1字节的数字是int
或signed char
。从技术上讲,普通unsigned char
也可以使用,但其签名是实现定义的,并且从样式方面考虑,最好保留其对字符数据的使用。同样,从技术上讲,char
及其有符号和无符号的变体可能大于8位,但是在这种情况下,您不太可能碰到C实现,并且C不会提供更小的数据类型。>
答案 1 :(得分:1)
您可以只使用char
代替int
或者,您可以创建structure
,它是C语言中最常用的自定义数据类型。
例如:
struct customStructure {
char c;
};
答案 2 :(得分:1)
字节类型已经存在,分别称为char
和sizeof(char)=1
,因此严格来讲数据类型,char
是通过C可以管理的最小内存量。>
但是,如果您谈论的是位,那并不意味着char
类型总是8位(在DSP中通常是10位或16位的字节)。鉴于此,char
中的位数由CHAR_BIT
表示。
答案 3 :(得分:0)
严格来说,根据C标准,I/Process: Sending signal. PID: 24604 SIG: 9
Application terminated.
至少具有2个字节,并且类型的实际宽度取决于机器。如果您希望数字类型具有一定的宽度,建议您看看int
中定义的数字类型。
如果您真的想使用N个字节的类型,则可以使用<stdint.h>
并稍作改动,以免脏手,但是更实际的解决方案是简单地使用内置类型。
答案 4 :(得分:0)
您可以将以下结构分别用于字节和位。
typedef struct data_type_bytes {
unsigned char data;
} bytes;
typedef struct data_type_bits{
unsigned int heightValidated : 1;
} bits;