Linux GCC的整型变量和实型变量

  原教材内容为Turbo C代码实验环境,更改为Linux GCC之后,在整形变量和实型变量的使用过程中以下两点不得不考虑。

一、整型变量

  整型变量的基本类型符为int,在int之前可以根据需要分别加上修饰符(modifier):short(短型)或long(长型),得到以下3中整型变量。

  ● 基本整型:类型说明符为int,在内存中占2个字节。

  ● 短整型:类型说明符为short int或short。所占字节和取值范围与基本整型相同。

  ● 长整型:类型说明符为long int或long,在内存中占4个字节。

  事实上,上面3种类型的整型都是有符号的,如在Linux中short int型变量的取值范围为-32768~32767。在实际应用中,变量的值常常是正的,如学号、年龄、库存量等等,针对这些情况,C语言可以加上修饰符unsigned,以指定是无符号数,相反,如果加上signed则表示是有符号数。若既不指定unsigned也不指定signed,则隐含为有符号的(signed)。如上面归纳的几种类型均表示是有符号的。归纳起来,可以用以下6种整型变量。

  ● 有符号基本整型: [signed] int

  ● 无符号基本整型: unsigned [int]

  ● 有符号短整型: [signed] short [int]

  ● 无符号短整型: unsigned short [int]

  ● 有符号长整型: [signed] long [int]

  ● 无符号长整型: unsigned long [int]

  各种无符号类型量所占的内存空间字节数与相应的有符号类型相同。但由于省去了符号位(有符号数在存储单元中最高位表示符号,最高位为0表示正数,为1表示负数),不能表示负数,故一个无符号整型变量中可以存放的正数范围比一般整型变量中正数的范围扩大一倍。例如:

  有符号整型变量:最大表示32767


0


1


1


1


1


1


1


1


1


1


1


1


1


1


1


1

  无符号整型变量:最大表示65535


1


1


1


1


1


1


1


1


1


1


1


1


1


1


1


1

  表2.2列出了Linux中各整型量所分配的内存字节数及数的表示范围。

表2.2 整数类型表


类型说明符


数的范围


字节数


short int


-32768~32767 即-~(-1)


2


unsigned short int


0~65535 即0~(-1)


2


int


-2147483648~2147483647 即-~(-1)


4


unsigned int


0~4294967295 即0~(-1)


4


long int


-2147483648~2147483647 即-~(-1)


4


unsigned long


0~4294967295 即0~(-1)


4

二、实型变量

  前面我们学习了实型常量,本节我们来学习实型变量。首先来了解实型变量的分类。

1.实型变量的分类

  实型变量分为:单精度(float型)、双精度(double型)2类。有关规定见表2.3。

表2.3 实数类型


类型说明符


比特数(字节数)


有效数字


float


32(4)


7


double


64(8)


15

  在linux gcc中,单精度型占4个字节(32位)内存空间,只能提供7位有效数字。双精度型占8个字节(64位)内存空间,可提供15位有效数字;小数最大有效位数6位。

原文地址:https://www.cnblogs.com/mingruoran/p/11613956.html

时间: 2024-08-28 23:15:56

Linux GCC的整型变量和实型变量的相关文章

嵌入式Linux GCC常用命令

本文和大家分享的主要是嵌入式Linux GCC常用命令相关内容,一起来看看吧,希望对大家学习嵌入式Linux有所帮助. 1.简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective C 语言.Pascal 语言.COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等.而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 

Linux gcc getcwd()的实现 zhuan

通过getcwd()可以获取当前工作目录. 1 #include <unistd.h> 2 3 char *getcwd(char *cwdbuf, size_t size); Linux gcc getcwd()的实现 zhuan

linux gcc attribute

_attribute__((error("message"))) Declare that calling the marked function is an error. __attribute__((warning("message"))) Declare that calling the marked function is suspect and should emit a warning. __attribute__((deprecated)) Decla

LINUX gcc安装rpm包顺序

rpm -ivh cpp-4.1.2-42.el5.i386.rpm rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm rpm -ivh glibc-headers-2.5-24.i386.rpm rpm -ivh glibc-devel-2.5-24.i386.rpm rpm -ivh libgomp-4.1.2-42.el5.i386.rpm rpm -ivh gcc-4.1.2-42.el5.i386.rpm rpm -ihv libstdc++

linux gcc++漏洞:普通用户获得root权限

linux gcc++漏洞:普通用户获得root权限 2012-02-06 10:22:38|  分类: linux安全|举报|字号 订阅   经我测试在RHEL5 / CentOS5 / FC13都成功了. 首先介绍下一下具体步骤中涉及到的2个频繁的出现的词语: taviso:作者 Tavis Ormandy 的简称,Google信息安全工程师 个人微博:http://my.opera.com/taviso/blog/ http://twitter.com/taviso exploit:自己创

linux gcc loudong

五事九思 (大连Linux主机维护) 大连linux维护qq群:287800525 首页 日志 相册 音乐 收藏 博友 关于我 日志 spcark_0.0.3_i386.src.tar.gz(Linux口令破解) udev漏洞导致本地普通用户可提升到管理员权限 linux gcc++漏洞:普通用户获得root权限 2012-02-06 10:22:38|  分类: linux安全|举报|字号 订阅   经我测试在RHEL5 / CentOS5 / FC13都成功了. 首先介绍下一下具体步骤中涉及

深入剖析 linux GCC 4.4 的 STL string

转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术. 平台:x86_64-redhat-linuxgcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) 1. 问题提出 最近在我们的项目当中,出现了两次与使用string相关的问题. 1.1. 问题1:新代码引入的Bug 前一段时间有一个老项目来

Linux gcc链接动态库出错:LIBRARY_PATH和LD_LIBRARY_PATH的区别

昨天在自己的CentOs7.1上写makefile的时候,发现在一个C程序在编译并链接一个已生成好的lib动态库的时候出错.链接命令大概是这样的: [[email protected] tcpmsg]# gcc -o hello main.c -lmyhello /usr/bin/ld: cannot find -lmyhello collect2: error: ld returned 1 exit status 1 gcc链接动态库时的搜索路径 自以为在当前工程中设置好了环境变量 LD_LI

Linux gcc中的LIBRARY_PATH 和 LD_LIBRARY_PATH

1. GNU 上关于LIBRARY_PATH的说明: LIBRARY_PATH The value of LIBRARY_PATH is a colon-separated list of directories, much like PATH. When configured as a native compiler, GCC tries the directories thus specified when searching for special linker files, if it