首页编程语言嵌入式linux上的c语言编程实践,嵌入式linux c语言应用开发教程

嵌入式linux上的c语言编程实践,嵌入式linux c语言应用开发教程

cysgjjcysgjj时间2024-06-17 02:11:49分类编程语言浏览71
导读:老师说C语言是面向过程的编程语言,它能使用面向对象编程吗?如何使用?C#跨平台吗?老师说C语言是面向过程的编程语言,它能使用面向对象编程吗?如何使用?谢谢邀请。其实,“面向过程”和“面向对象”只是程序开发中的一种方法,或者说一种思想,大多数现代高级编程语言都能使用这两种编程思想,C语言当然也不例外。只不过,有些编程语言在语法上支持“对……...
  1. 老师说C语言是面向过程的编程语言,它能使用面向对象编程吗?如何使用?
  2. C#跨平台吗?

老师说C语言面向过程的编程语言,它能使用面向对象编程吗?如何使用?

谢谢邀请。

其实,“面向过程”和“面向对象”只是程序开发中的一种方法或者说一种思想,大多数现代高级编程语言都能使用这两种编程思想,C语言当然也不例外。

只不过,有些编程语言在语法支持“对象”,而C语言则没有原生的“对象”语法。不过借助于灵活的指针结构体语法,在C语言程序开发中使用“面向对象”思想也是很简单的。

嵌入式linux上的c语言编程实践,嵌入式linux c语言应用开发教程
图片来源网络,侵删)

鉴于题主可能是C语言初学者,在开始讨论如何使用C语言进行“面向对象”开发之前,先介绍两个新函数——malloc() 和 free() 。

如果题主看过我之前文章的话,应该明白C语言程序每调用一次函数,系统就会在栈中分配一块栈帧给被调用函数,当函数执行完毕后,这部分栈帧就自动被系统收回了。

malloc() 函数的作用申请一块指定大小的内存,它的C语言原型如下,成功时返回这块内存的首地址,失败时返回 NULL。

嵌入式linux上的c语言编程实践,嵌入式linux c语言应用开发教程
(图片来源网络,侵删)

C语言程序中函数的局部变量占用的内存,是函数运行时,自动在其所属栈帧中分配的,所以局部变量会随着函数结束释放。不过,malloc() 向系统申请的内存在堆区里,这部分内存不会随着函数的退出自动释放需要程序员自己使用 free() 函数释放:

C是面向过程的,在语言这一层面上并没有支持类和对象的概念,C++才支持的。但是,面向对象,本质上是一种编程和设计的思想。即使用纯C,仍然不妨碍人应用面向对象的编程思想。倘若研究linux的源代码就应该有点印象,它是纯C写的,但是里面很多函数指针,本质上是模块之间互相松耦合,体现的就是面向对象的设计思想。

C#跨平台吗?

嵌入式linux上的c语言编程实践,嵌入式linux c语言应用开发教程
(图片来源网络,侵删)
  • Mono
一个第三方的.net framework实现 (现被官方收编)

几乎实现了

.net

framework的所有功能,包括winfrm,wcf,aspnet webfrm 等等

大名鼎鼎的unity3d就是使用mono实现了使用C#进行脚本编写

  • Xamarin

基于mono开发的,移动端跨平台框架,支持 Android,iOS,WP(W10M)

  • .NET

    Core

我猜这个我不用说了。

C#当然已经一门彻底的跨平台编程语言,最厉害的是C#是目前除了C++之外唯一一门可以开发移动端和PC端的编程语言,C#除了Windows平台的开发,还搞定了iOS/Android的开发,他还不用像C++一样每个平台都要单独开发一次。

C#并不是一开始就跨平台的,不像java/Python/JavaScript/PHP这些编程语言一开始就是跨平台,C#并不是这样,C#设计之初并不是跨平台的。

C#之父也是Delphi之父、安德斯海尔斯伯格从设计C#开始,就把它作为了Windows平台专属的编程工具,因此微软官方并没有像Java一样跨平台。

Xamarin公司主持了一个叫做Mono的开源项目,这个项目的目的就是创建一个开源的

.NET

.NET

后来微软收购了Xamarin这家公司,微软正式推进了C#和

.NET

.NET

Windows桌面程序开发,主要技术是WPF框架,这个层面的技术是C++最擅长的;

Unity游戏引擎的主要脚本语言,可用来开发PC、Sony、Xbox等游戏平台上的各种游戏,Unity是最为成熟的游戏引擎之一,目前除了Unity最强的是Unreal虚幻引擎,虚幻引擎的主要编程语言则是C++,相对来说C#更低的学习门槛,也让Unity迅速发展成为最火的游戏引擎之一;

开发原生移动应用,除了曾经的Windows phone平台,通过Xamarin的技术,微软实现了iOS/Android原生应用开发,并且与此同时还支持了macOS应用开发;

石头哥已经给你回答了。😂😂😂

为了攒点粉丝,我也答一下。

目前.NET有.net framework、.net core、xamarin、mono等框架。未来将以.NET 5开始,统一框架。

.net可以跨平台、跨CPU架构

支持Windows、Linux、mac系统,基于linux开发的debain、ubuntu、centos等系统都支持。

除了英特尔CPU,amd的CPU、arm架构的cpu都支持。

除了[_a***_]平常电脑服务器用的Windows系统、linux系统,还支持树莓派等各种linux嵌入式开发板。

c语言是非托管语言,要对各种平台分别生成。而.net可以只生成一次,即可把软件放到各种平台下运行。一次生成,各个平台均可运行,不限cpu、不限系统。

对于docker、k8s等技术。.net能十分优秀地契合,通过容器、集群技术,建立大型系统,开发分布式应用。

国外有十分丰富的大型应用经验国内对.NET的敏感度不高,主要以j***a为首的编程进行开发。要参考.net的情况,应当到谷g查找资料。国内对.net的”热情”并不高。

C#包括其他的

.NET系语言,从技术实现上都是跨平台的,因为它们在编译之后都是符合.NET公共运行时标准的字节码,通过.NET虚拟机运行时翻译成最终的二进制运行。

微软之前将C#等局限在微软操作系统上,只是一种商业竞争的考虑,希望广大的开发者仍然围绕在微软的操作系统生态上开发。

.NET

之后有了Mono,也就是开源的

.NET

这种情况知道最近几年改善了。因为微软终于出手了,这就是大名鼎鼎的

.NET

.NET

.NET

.NET

之后微软的工作重心就放到了.NET CORE上,ASP.NET

.NET

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/14896.html

C#跨平台net
华南师范大学网络 互联网技术的英文名字,互联网技术的英文名字是什么