BOOL类型的本质:

typedef signed char BOOL;BOOL类型的变量有2种取值:YES、NO,BOOL的输出(当做整数来用)

#import <Foundation/Foundation.h>

BOOL test(BOOL mybool)
{
    return NO;
}

int main()
{
    BOOL b = YES;
    
    BOOL b2 = NO;
    
    BOOL b3 = 1;
    
    BOOL b4 = 0;
    
    NSLog(@"%d",test(b));
    return 0;
}

  

1.#import的用途:

 1> 跟#include一样,拷贝文件的内容

 2> 可以自动防止文件的内容被重复拷贝

 #import <Foundation/NSObjCRuntime.h>

    NSObjCRuntime.h中有NSLog函数的声明

 主头文件

 1> 主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件

 2> Foundation框架的主头文件名称就是Foundation.h

 3> 只需要包含Foundation框架主头文件,就可以使用整个框架的东西

 运行过程

 1> 编写OC源文件:.m、.c

 2> 编译:cc -c xxx.m xxx.c

 3> 链接:cc xxx.o xxx.o -framework Foundation

   (只有用到了Foundation框架才需要加上-framework Foundation)

 4> 运行:./a.out

类的声明

#import <Foundation/Foundation.h>

@interface Car : NSObject
{
    @public
    int wheel;
    int speed;
}
- (void)run;

@end

@implementation Car

-(void)run
{
    NSLog(@"有%d个轮子的车子以%d的速度跑起来了",wheel,speed);
}
    
@end

int main()
{
    Car *c = [Car new];
    
    c->wheel = 4;
    c->speed = 500;
    
    [c run];
    
    
    
    return 0;
}

  

 @public

@public可以让Car对象的wheels和speed属性被外界访问

NSObject

NSObject的目的是让Car类具备创建对象的能力

 成员变量不能在{}中进行初始化、不能被直接拿出去访问  方法不能当做函数一样调用

成员变量\方法不能用static等关键字修饰,别跟C语言混在一起   类的实现可用写在main函数的后面,主要在声明后面就行了

 

#import <Foundation/Foundation.h>

@interface Person : NSObject


@end

@implementation Person
@end


@interface Car : NSObject
{
    @public
    int wheels;
    int speed;
}
-(void)run;
-(void)fly;
@end

int main()
{
    Car *c1 = [Car new];
    c1->wheels = 4;
    c1->speed = 500;
    [c1 run];
    [c1 fly];
    return 0;
}


@implementation Car

-(void)run
{
    NSLog(@"%d个轮子%d速度的车跑起来了",wheels,speed);
}
-(void)fly
{
    NSLog(@"%d个轮子%d速度的车飞起来了",wheels,speed);
}
@end