学习OC前的一些需要掌握的c语言

OC和C语言互相调用 注意事项: OC与C++对象在内存管理上是不一样的。所以我们无法直接将一个OC对象直接赋值给一个C++对象,或者相反。 OC与C++都支持指针,可以通过指针进行桥接。例如在一个C++类中声名一个OC的指针。 clang可以通过程序文件的后缀名选择不同的编译器对其进行编译。如文件后缀名是.m,它会使用OC编译器;如果是.mm,它会使用Object-C++编译器。 OC调用C语言: // 方法一:c语言可以直接在OC的类中写方法: - (void)playvideobtn{ // 调用c语言方法: 阅读详情

在正式进入oc的世界之前,首先你得之前接触过c语言。不过你都知道oc了,应该对c语言这些入门级语言势必已经有所了解。在这里我再次提醒一些关于学习oc过程中会遇到的关于c语言的知识~(自觉c语言百分百没问题可以忽略。)

*在一个c函数中,使用布尔值的话,必须导入头文件 #include <objc/objc.h>

*sleep()函数在头文件 <unistd.h>中声明,而且sleep()的单位是秒! (第一次用的时候就以为是毫秒,结果就调了1000,一直不显示结果,还以为出bug了)

*函数的局部变量存在函数的帧(frame)中,用 栈(stack)来描述帧在内存中存储的地点 

*栈 是后进后出的,就是坐电梯问题,谁最后进来最先出去。还有一点记住了可能会加深印象,就是c语言从main()函数开始执行嘛,那main()方法肯定最先压栈,最后其它运行完调用函数运行完,main()才退栈。 否则运行到一半main()方法退栈跑了程序不就蹦了? 我自从想到了main()函数问题这个问题就清晰了

*静态变量跟全局变量:都是要在函数外声明,但是区别在于只有声明该静态变量的文件才可以访问*该变量,其它文件不可以访问。

*在终端上输入man math 按回车键,可以查看数学代码库。(同样还有 输入man stdio 同样有惊喜噢)


讲了这么多废话,下面给大家介绍一个好玩的。就是 一个结构体。

<pre name="code" class="cpp">/*
    <time.h>中声明的结构体,可用于获取时间
*/
<pre name="code" class="cpp">struct tm{
	int tm_sec; 				//除去分钟后的秒数 0~60
	int tm_min;				//除去小时后的分钟数 0~59
	int tm_hour;				//从午夜算起的小时数 0~23
	int tm_mday;			       //一个月的天数,即这个月几号 1~31
	int tm_mon;				//一月算起的月数 0~11 *因为是减去一月,所以输出当前月份时要+1
	int tm_year;				//从1990算起的年数,故输出当前年份的时候要+1900
	int tm_wday; 				//周天算起的天数,0~6
	int tm_yday;				//从1月1号算起的天数 0~365
};

下面再介绍两个会跟这结构体相关的函数:

<span style="white-space:pre">	</span>time(); <span style="white-space:pre">				</span>// 会返回1970年开始到现在的秒数!
<span style="white-space:pre">	</span>localtime_r(const time_t *t, struct tm *time);  //可以读取time()返回的秒数并填入结构体中

下面不妨通过一段代码来体验一下呗~!

<span style="white-space:pre">	</span>long secondsSince1970 = time(NULL);             
<span style="white-space:pre">	</span>printf("It has been %ld seconds since 1970\n",secondsSince1970);
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>struct tm now;
<span style="white-space:pre">	</span>localtime_r (&secondsSince1970,&now);
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">		</span>printf("Now it %d %d %d \n", now.tm_hour, now.tm_min, now.tm_sec );</span>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;">这段代码就可以输出当前的时刻啦 ,当然你也可以自己尝试输出其它变量,把日期也打印出来~由于篇幅有限,就不再一一演示了</span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">	</span></span>
<span style="white-space:pre">	</span>*因为栈中的内存由系统自动分配,函数结束后悔自动释放。所以可存在<span style="color:#ff6600;">堆(heap)</span>中,因为独立于任何函数的栈,所以任何时刻任何函数都可以访问。
<span style="white-space:pre">	</span>使用mallo()函数得到一块内存缓冲区(buffer,在堆中)。 用完后记得调用free()函数来释放相应的内存!可配合sizeof()函数来获得缓冲区的准确大小
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">		</span>好啦,带着大家快速粗略地过了一遍c语言一些重要的知识点, 下一篇将会带领大家正式进入 Objective-C的世界~!</span>




OC—基础语法 一、Objective-C语言简介 Objective-C简称Obj-C或者OC,Objective的意思就是面向对象的。OC其实就是在C语言的基础之上,封装了一层面向对象的语法,他并不是一门全新的编程语言。OC是Mac OS X系统和iOS系统的主要开发编程语言,当然马上要被Swift给替代了,然并卵,我们还是得好好学习OC,因为现在大多数公司还是使用OC来做iOS开发。 二、第一个OC程序... 阅读详情

相关推荐

Objective-C学习之路-由浅入深

一、Objective-C简介Objective-C 简称OC /Obj-c Objective 是面向对象的,OC是在C语言的基础上添加了一些新的面向对象的语法,比较繁琐的语法封装的更为简单,所以在学习Objective-C之前大家必须去学习C语言一些基本的语法之类,这里我也写了C语言的学习博客,去学习C语言,大家可以参考一下。 所以OC它是完全兼容C语言的,我们可以在任何的OC语言中写任意的

王涛的博客 2万+

OC学习笔记一---第一个OC程序

一、OC简介 OC是Objective-C的简称,从名字来看,就可以知道OC这个语言是在C语言的基础上建立起来了,所以OC完全兼容C语言的语法,并且也可以在OC中插入C语言的代码,OC与C语言的不同是OC在C语言的基础上增加了一层最小的面向对象的语法。OC可以用来开发IOS平台和

阿了个林 1847

保姆级教程:在阿里云ECS上用Docker一键部署EMQX MQTT服务器(Ubuntu 20.04)

本文提供在阿里云ECS上使用Docker一键部署EMQX MQTT服务器的详细教程,涵盖从实例创建、Docker环境配置到EMQX部署与优化的全流程。适合物联网开发者快速搭建高效、安全的MQTT消息服务器,适用于智能家居、工业物联网等场景。

weixin_28739079的博客 308

alloc、init引发的思考

oc初始化一个对象使用两段式: MyClass *myObj = [MyClass alloc]; myObj = [myObj init]; 为了简洁,我们都是这样写: MyClass* myObj = [MyClass alloc] init]; 我们思考一下两段式分别z alloc allocat

IOSAFei的专栏 595

Deepseek:物理神经网络PINN入门教程

物理信息网络(Physics-Informed Neural Networks, PINN)是一种将物理定律(如偏微分方程、守恒定律等)嵌入神经网络训练过程的深度学习方法。其核心思想是通过神经网络同时拟合观测数据并满足物理约束,从而解决传统数值方法难以处理的高维、噪声数据或复杂边界条件问题。

金石软件 9298

ESP32 LVGL开发板例程使用记录:自制常用汉字字库(二)

1、将下载的文件移入工程文件中 ,路径为项目文件中 ”......\lib\lvgl\src\font“文件夹下。3、修改字库配置文件,文件名为lv_conf.h中的内容,向其中加入下面内容(位置可搜索注释块来找到地方)修改完成可以编译试试,看是否成功,如字库较大时编译出错,请使能:LV_FONT_FMT_TXT_LARGE。2、打开此文件,修改包含头文件的路径,不然会报错,修改方法可对照自己库中其他字库文件中的包含路径。导入完成后在VSCode工程中可以查看到此文件。上次说完了如何制作 字库.c 文件。

qq_43279097的博客 1958

swift学习 --语言介绍和项目的创建以及runtime不同---iOS

swift从2014年6月2日诞生以来,到现在已经过了6年了,好像swift都不温不火。那么我想说这只是个假象,现在swift已经比Object-C排名靠前很多了,公司对swift要求也越来越强硬了。之前学过swift一直未使用,忘得差不多了。现在开始从零学习,我会将我学习之路 整理成博客分享给大家。希望对有需要的朋友有帮助,如果帮助到了你,请帮忙点赞,对在下有什么建议也欢迎留言、建议。 下面是2019——TIOBE语言排行榜,iOS中的swift还是进入了前10。 Objective-C打入前20第12

Guessplease的专栏 284

x2-DFD:A framework for explainable and explainable deepfake detection

该文章提出了X2-DFD框架,用于可解释和可扩展的深度伪造检测。通过评估大型多模态语言模型(MLLMs)在深度伪造检测中的内在能力,发现它们在不同伪造相关特征上的有效性各异。基于此,实施了针对性的微调策略,显著提高了MLLMs的解释能力,并整合了外部深度伪造检测器(EDDs),以结合MLLMs和传统检测器的互补优势,实现更好的检测和解释。

志在山顶的人,不会贪念山腰的风景 510

OC与C语言的区别

C语言是面向过程的编程语言,而OC则是面向对象的编程语言。 面向对象:打个比方,就是你做一次菜,让老婆做个菜,吃饭,这就是面向对象,效率高 面向过程,就是每一个细节:比如你要先把或开到合适的位置.然后还要洗菜 ,等油热了,才能开始炒菜,然后调料,.....

chengxunjuan4094的博客 996

芒果YOLO11改进106:检测头篇DynamicHead动态检测头:基于DynamicHead,二次原创提出SATNeXt模块,提出全新的动态DynamicSatDetect

检测头篇DynamicHead动态检测头:基于DynamicHead,二次原创提出SATNeXt模块,提出全新的动态DynamicSatDetect

包括YOLOv5、YOLOv7、YOLOv8等模型改进 773

AI预测彩票,使用chatgpt和lstm神经网络(文末附源码)

AI预测彩票,使用chatgpt和lstm神经网络(文末有彩蛋)

淘淘小窝 1万+

oc语言和c语言,C语言及OC语言初期学习心得

2015-7-22,周三经过一个星期C语言的学习,对基础知识语法已经有了一定的了解和认识。同时通过这三天对OC语言的学习,更加了解编程语言都是相融相通的。虽然OC语言的语法和之前接触的C,JAVA有很大的区别,但是在讲师的解析和引导下,还是比较容易接受的。学习知识的过程不仅仅是对知识的认识,简单的认识是远远不够的。为了今后更好的开发,要对学过的知识加以理解、辨析,通过代码去实现,加深认知。以下是...

weixin_35911805的博客 276

52-Halcon-- smooth_object_model_3d函数功能(滑处理3D对象模型)

Halcon中smooth_object_model_3d算子详解 该算子用于3D模型平滑处理,提供三种算法:'laplacian'(快速去噪)、'taubin'(高质量防收缩)和'low_pass'(频域滤波)。核心参数包括迭代次数(默认5)、平滑强度(0-1)和边缘保护选项。典型应用包括扫描数据去噪、CAD模型光顺和逆向工程优化。支持自适应平滑、结合模型简化等高级技巧,并可通过分块处理优化大型模型性能。参数组合需根据具体场景选择,如快速去噪推荐拉普拉斯方法(5次迭代,强度0.3),特征保持推荐低通滤波(

weixin_45590420的博客 873

oc语言和c语言

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式或编程风格,它将程序中的数据和对数据的操作封装在一起,形成对象,以此来模拟现实世界中的实体和概念,并通过类、继承、多态等机制来组织和管理对象。总之,OC语言是一种面向对象的编程语言,具有动态特性、垃圾回收、扩展性和跨平台性等特点,适用于iOS和macOS等应用程序开发、游戏开发、网络应用程序开发、机器学习和人工智能、科学计算等领域。面向对象编程支持:OC是一种完全面向对象的语言,而C语言是一种过程化的语言。

WSH2012ffff的博客 1337

【KingSCADA】如何建立硬件系统及相关变量

本篇主要讲解如何定义设备,如何定义变量。KingSCADA3.8的采集系统是指负责和现场设备进行通讯,并采集现场数据和控制现场数据的模块,称之为采集器,也叫IOServer应用,它是一组独立的应用程序,可以脱离KingSCADA3.8软件,它依赖于KingSCADA3.8驱动产品,通过驱动与IO设备进行通讯。采集系统由通讯链路,设备,数据块组成。链路:链路是指计算机通过什么方式(接口)与设备进行连接,链路类别:串口,以太网,GPRS,Modem,通信卡,采集卡,无链路。

做有价值的事,积累有价值的笔记! 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

详解swift和OC以及C语言的混编(不看后悔!)

Swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,或者有一些第三方使用OC写的,没有swift版本,怎么办?那就使用混编.这个在IOS8后是允许的.先简单的入手,先研究在同一个工程目录下混合使用的情况。这里主要介绍swift类中调用OC方法和swift类中调用C函数以及OC类中调用swift的函数这三种类型的混编.

jeck的博客 2万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OC语言篇—学习笔记1—C和OC的区别

学习笔记1—C和OC的区别 1.文件的后缀名 OC:类的头文件 .h,类的实现文件 .m C:类的头文件 .h,类的实现文件.c 2.导入头文件方式 C语言使用include导入头文件,如果想多次引用头文件,会出现重复定义,重复声明的情况,所以需要使用条件宏指令避免这种情况; #ifndef TEST_HHHHH #define TEST_HHHHH #include &lt;stdio....

璇子的blog 639

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

什么是编程语言C语言,什么是oc语言,oc语言是c语言吗?

作为一个ObjecTIve-C的coder,我总能听到一部分人在这门语言上抱怨有很多问题。他们总在想快速学习这门语言来写一个App出来,但他们也总是联想到ObjecTIve-C看上去实在太难了或者在想这些语法符号都是神马玩意?不错,他们问得非常好,所以本人也解释一下为什么很多程序员相比较学习Ruby或者Java很容易,但在决定开发iOS或者OS X应用时会那么犹豫。什么是oc语言语法:首先我们谈谈...

weixin_42404983的博客 1095

OC基础语法-1.OC和C语言的对比

1.OC和C语言的对比Objective-C ================== 由于OC语言是基于C语言基础添加了面向对象的语法衍生而来,所以OC完全兼容C语言。 OC和C的基本属性的对比

MrRightZJ的博客 1237

【OC】OC语言学习——面向对象(下)

OC提供了NSValue、NSNumber来封装C语言基本类型(short、int、float等)。在 Objective-C 中,**包装类(Wrapper Classes)**是用来把基本数据类型(如 int、float、char 等)“包装”为对象的类。因为 Objective-C 是面向对象的语言,有时候我们需要把基本类型当作对象使用,比如:放入 NSArray、NSDictionary 这样的集合中(这些集合只能存放对象);使用对象方法对数值进行操作;与 Foundation 框架接口交互。

2402_86720949的博客 1518

黑马程序员-C语言与OC的差异

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- IOS开发中常用的有OC和swift,其中OC是可以兼容C语言的,所以通过比较C与OC的差异,可以帮助我们更好的去学习OC语言。 区别: 1.文件后缀的差异 C语言中文件的后缀有.c(源文件) .o(目标文件) .out(可执行文件) .h(头文件)。 OC中的后缀有.c(C语言源文件

CRUD程序员的博客 797

C语言剖析OC的rangeOfString方法

在OC中,我们选择- (NSRange)rangeOfString:方法来判断字符串是否存在。该方法返回的是一个NSRange 类型的结构体,成员变量包括location、length。 需要注意的是:当这个字符串不存在时,返回的location不仅仅是NSNotFound,并且length的值也是0.

筱锐 2408

OC 学习笔记1 hello world

刚接触oc,免不了要把它和c语言做一下对比。 这是c语言的hello world代码: #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } 以下是oc的hello world代码: #import <Foundation/Foundation.h> int mai...

weixin_43900761的博客 519

ios之OC与C、OC与c++互相调用

注意事项: OC 与 C++ 对象在内存管理上是不一样的。所以我们无法直接将一个 OC 对象直接赋值给一个 C++ 对象,或者相反。 第二点,OC 与 C++都支持指针,可以通过指针进行桥接。例如在一个 C++ 类中声名一个 OC的指针。 第三点,也是最重要的一点,clang可以通过程序文件的后辍名选择不同的编译器对其进行编译。如文件后辍名是.m,它会使用 OC编译器;如果是.mm,它会使用 Object-C++编译器。而既用到 OC,又用到 C++ 的程序文件则应该使用.mm..

代码解释生活 4042
上一篇: Ojective-C入门请读
下一篇: Objective-C编程之——"Hello Wold"
IT_Panda_ffm
博客等级 码龄10年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值