Objective-C数量类型-Objective-C 限定词 long short 等

Objective-C里有如下几个限定词需要了解:long,long long, short,unsigned,signed



      long

      如果直接把限定词long放在int声明之前,那么所声明的整型变量在某些计算机上具有扩展的值域。一个long int声明的例子为:

      long int factorial;

      这条语句将变量factorial声明为long的整型变量,也就是长整型。就象float和double变量一样,long变量的具体精度是由具体的计算机系统决定的。在许多系统上,int与long int具有相同的值域,而且任何一个都能存储4个字节(1个字节8位),32位宽(2,147,483,647)的整型值。long在限定整型的时候,实际相当于双精度的short,什么是short?  Mike后面会谈。
      long int类型的常量值可通过在整型常量末尾添加字母L(大小写均可)来形成。单数字和L之间不允许由空格。因为小写的L和数字1容易混淆,建议有用到这种情况,都用大写。下面是个简单的例子:

      long int numberOfPoints = 131071100L;

      将变量numberOfPoints声明为长整型,而且初值为131,071,100。
      要用NSLog显示long int的值,使用字母l做为修饰符并放在整型格式符号i,o和x之前。例如“%lx”表示十六进制格式显示值。

      当然,我们同样可以把 long 标识符放在double声明之前。范例如下:

      long double US_deficit_2004;

      long double常量可写成其尾部带有字母l或L的浮点常量,例如:1.234e+7L
      要显示long double的值,需要使用修饰符L。因此,%Lf用浮点计数法显示long double的值,%Le用科学计数法显示同样的值,而%Lg将告诉NSLog在%Lf和%Le之间任选一个使用。



      long long

      双长整型相当于双精度long,可以用如下形式使用:

      long long int maxAllowedStorage;

      这条语句把指定的变量声明为具有特定扩展精度的双长整型变量,该扩展精度保证变量至少8个字节,具有64位的宽度。NSLog字符串不使用单个字母l,而使用两个l来显示long long的整数,例如“%lli”。



     short

      把限定词short放在int声明之前时,它告诉Objective-C编译器要声明的特定变量用来存储相当小的整数。之所以使用short变量,主要原因是对节约内存空间的考虑,当程序员需要大量内存而可用的内存量又十分有限时,比如iPhone开发的时候,就可用short变量来解决这个问题。
      在某些计算机上,short int占用的内存空间是常规int变量所占空间的一半。在任何情况下,确保分配给short int的空间数量不少于2个字节,16位。

      注意,在Objective-C中,没有其他方法可显式地编写short int型常量。要显示short int变量,可将字母h放在任何普通的整型转换符之前,如:%hi,%ho或%hx。换句话说,可用任何整型转换符号来显示short int,因为当它作为参数传递给NSLog例程时,可转换成整数。



      unsigned

      顾名思义,这个最终限定词就是无符号,可放在int变量之前,当整数变量只用来存储正数的情况下使用最终限定符。以下语句

      unsigned int counter;

      向编译器声明:变量counter只用来保存正值。通过限制整型变量的使用,使它专门存储正整数,可以扩展整型变量的精度。一般unsigned int可简写为uint。
      通过将字母u(或U)放在常量之后,可产生unsigned int常量,例如:0x00ffu
      编写整型常量时,可将字母u(或U)和l(或L)组合起来使用,例如30000UL,告诉编译器将常量20000看作unsigned long。



     简写

      将变量声明为long int,short int或unsigned int类型时,关键字int 可以省略。因此unsigned变量counter可等价地声明为以下形式:

      unsigned counter;

      同时可将char变量声明为unsigned。



      signed

      signed限定词可明确地告诉编译器特定变量是有符号的。它主要用在char声明前面,这个就比较复杂,此处按下不表。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用Objective-C纯代码实现的签到日期界面。实现的界面包括一个导航栏、一个显示当前日期的标签和一个签到按钮。 ViewController.h文件: ```objective-c #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end ``` ViewController.m文件: ```objective-c #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) UILabel *dateLabel; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // 设置导航栏标题 self.navigationItem.title = @"签到"; // 设置背景颜色 self.view.backgroundColor = [UIColor whiteColor]; // 创建并添加日期标签 self.dateLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)]; self.dateLabel.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2 - 50); self.dateLabel.textAlignment = NSTextAlignmentCenter; self.dateLabel.textColor = [UIColor blackColor]; [self.view addSubview:self.dateLabel]; // 更新日期标签的文本 [self updateDateLabel]; // 创建并添加签到按钮 UIButton *checkInButton = [UIButton buttonWithType:UIButtonTypeSystem]; checkInButton.frame = CGRectMake(0, 0, 200, 50); checkInButton.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2 + 50); [checkInButton setTitle:@"签到" forState:UIControlStateNormal]; [checkInButton addTarget:self action:@selector(checkInButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:checkInButton]; } // 更新日期标签的文本 - (void)updateDateLabel { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy年MM月dd日"; self.dateLabel.text = [formatter stringFromDate:[NSDate date]]; } // 签到按钮点击事件 - (void)checkInButtonClicked:(UIButton *)sender { // TODO: 处理签到逻辑 // 更新日期标签的文本 [self updateDateLabel]; } @end ``` 在AppDelegate.m文件中,将ViewController设置为根视图控制器: ```objective-c #import "AppDelegate.h" #import "ViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; ViewController *viewController = [[ViewController alloc] init]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; self.window.rootViewController = navigationController; [self.window makeKeyAndVisible]; return YES; } ``` 这样就完成了一个简单的签到日期界面的实现。运行程序后,可以看到一个带有日期标签和签到按钮的界面。点击签到按钮后,日期标签上的日期会更新为当前日期。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值