labview和c语言,哪个更好,LabVIEW或C语言? - 虚拟仪器 - 电子发烧友网

点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程作者: Simon Hogg, NI LabVIEW产品市场部经理

“为什么LabVIEW优于C语言?” 作为LabVIEW产品经理,我被很多次问到这个问题。

老实说,这么提问实际上是错误的。必须要有具体的应用环境,这么提问才有意义(例如,“在这些限制条件下,哪一种语言更适合这个任务?”) 若没有这些细节,这个问题就像为什么面包比面粉好一般无意义。

如果您想创建一个测控系统,不同于C语言等低级语言,使用NI LabVIEW系统设计软件能够帮助您降低风险、节省开支并免除不必要的麻烦。在这里我并非暗示LabVIEW是比C语言“更好”的编程语言——特别是考虑到LabVIEW大部分内容不仅仅由G语言编写,还由C和C++语言组成。 恰恰相反,这两种语言各自具有不同的优势,程序员应合理择取才能达到自己的目的。

85d0d153c00e6fc532d5c3187abf8aa4.png

为什么要把LabVIEW比作面包? 请继续阅读

LabVIEW和C语言相比起来就好比面包和面粉的关系。 如果您想做一个三明治,就必须先选用面包。 如果您想做一个蛋糕,先用的自然是面粉。 如果用面粉从头烘烤面包,即昂贵又费时(尤其是当你只想吃些小点心时),但若做的是蛋糕,面粉就必不可少了。 同样的,你会发现,要选择最适合的编程语言并非易事,它归结为使用正确的工具来完成适合的工作。

C语言提供了低级别的控制

当应用资源有限,必须严格管理时,C语言的使用效果更好。 由于C语言是相对低级别的语言,因此,即便是最细微的细节,如内存分配和线程,都必须考虑周全。优秀的程序员能够使用低级别的控制,省去大部分高级别应用带来的间接开销。此外,还能充分利用目标体系构架或主机操作系统属性,实现更高的性能。

正是由于上述原因,NI程序员使用C或C++编写了LabVIEW库中的大部分内容。LabVIEW与C语言在文件I/O和分析等操作的运行速度上旗鼓相当,因为这些操作都是基于低级语言编写的,并对LabVIEW支持的不同平台和操作系统进行了优化。

效率Vs控制

有时,若开发人员的效率足够高的话,就无需手动优化代码了。 减少一点控制,借鉴类似问题的解决方案,可极大地促进项目的高质量开发。 编程语言不断朝更高级抽象方向发展,让您更专注于手头的问题,而不是被计算细节所困扰。

LabVIEW: 并行执行和真实I/O

无论使用何种语言,高级系统设计与低级执行都是独立的。

在测控应用中,编程只是系统设计者的任务之一。 工程师很少有时间为了计算和测量硬件,或是操作系统上的改进,去更新或重写旧版本软件。 他们通过获取、处理和呈现真实数据进行改进——而不是去挖掘新方法处理内存分配和线程池。 使用LabVIEW,您可以使用经测试、支持、维护的NI底层代码库来创建应用。 而选择C语言意味着您需要实现、支持和维护自己的底层库,或从供应商处购买(NI提供NI LabWindows ™/CVI 软件与NI Measurement Studio)

从语法角度来说, C语言指令连续执行的能力非常强,CPU能以最快的速度处理它们。 对于纯粹的数据计算,在执行单一任务且指令相对基本的情况下,C语言非常适用。 而LabVIEW采用的是图形化语法,更适用于有真实时间约束的并行执行任务。

29b09816df9fd5eeefe88a2cc5e0b67f.png

使用LabVIEW,您可以跳过基础构建的步骤,直接进行自定制。

LabVIEW不仅仅是一种编程语言及相关的代码库。 结合使用LabVIEW集成开发环境(IDE)与NI硬件,由此所带来的开发体验是各个部分的总和无法企及的。LabVIEW可以准确识别可用的硬件资源,并以下拉菜单和项目名称显示可用的I/O通道与执行目标。 在编辑过程中,您可以防止或察觉错误的配置,以避免代价高昂、又难以调试的运行时错误。 新一代测量硬件(如NI PXIe-5644R矢量信号收发器)甚至可以允许LabVIEW对其固件进行重新定义,达到传统、不同的编程语言和仪器无法实现的性能水平。

有很多项目都会延期或超预算完成,主要是因为工程师低估了聚集所有资源所需的开销。 若您使用LabVIEW,硬件驱动程序会以与数据分析库相同的格式返回数据,UI小部件则以相同的格式显示技术数据,无需再拼凑不同组件。

到底哪个更好: LabVIEW还是C语言?

这个问题的最佳答案是:“一切皆有可能。” 正如《银河系漫游指南》中所说的, 除非您明确自己的问题或了解正试图解决的问题,否则得到的答案也是无意义的。 对于熟练的用户来说,LabVIEW和C都是非常有用的工具,几乎可以解决任何问题: LabVIEW适用于高级测试、测量和控制应用,而C更容易实现低级计算密集型任务。

若再有人问起LabVIEW好还是C语言好,您就回答一切皆有可能。 这也许是将问题朝着正确的方向引导的唯一途径了。

进一步了解LabVIEW与NI集成开发环境,请访问ni.com/labview/zhs

更多精彩内容,请继续浏览电子发烧友网《通信测试特刊》8月刊

f27e161b00978b4ca2a7700b9141450f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#入门资料, 章.1⒈2第 I部分 C#语 言.NET体系结构 …¨…¨∵¨…¨¨3C#与 .NET的 关系………………3公共语言运行库 …………………41.2.1 平台无关性……………………41,2,2 提高性能………………………41.2.3 语言的互操作性……………¨5中间语 言 … ¨ ¨ … … … …… … …61.3.1 面向对象和接口的支持………61.32 不同的值类型和引用类型∴·…71,3.3 强数据类型化¨………………81.3.4 通过异常处理错误…¨……△21.3.5 特性的使用…………………△3程 序 集 …¨… ¨ … …… … … … I31.41 私有程序集…………………△41,4.2 共享程序集…………………△41.4.3 反射……………∵……………141.4.4 并行编程……………………△5。NET FramewOrk类 ¨… ¨¨… …J15名称 空 间 ¨ ¨ ¨ ¨ … … … … … 16用 C#创 建 .NET应用 程序 … … ·161.7.1 创建 AsPJ吡T应用程序……161.7.2 创建 Windows窗体…………181.7.3 使用 WPF… …………¨……181.74 Windows控 件………………△91.7.5 Windows服务………………△91.7.6 WCF¨ ¨¨¨¨¨¨……………………¨¨¨¨·191.7.7 W血dows WF· …¨¨¨¨¨…·……·………19C#在.NET企业 体系 结构中的作用………………………19小结 ………¨¨………………21核Jb C#· ∵第一个 C#程序…¨¨¨……2.1.1 代码 ………………………2.12 编译并运行程序 …………2.1.3 详细介绍 ………………¨变量 … … …… ¨ … … … … … 2,2.1 变量的初始化 ……………2.2.2 类型推断…………………2.2.3 变量的作用域 ……………2⒓ .4 常量………………………预 定义 数 据类 型 … … …… … 2.3.1 值类型和引用类型 ………2.3,2 CTs类 z型 ·:· ………………¨…2.3.3 预定义的值类型…………2.⒊ 4 预定义的引用类型 ………流控 制 … … ∴ … ¨ … … … … 2.4.1 条件语旬 …………………2.4.2 循环·¨·¨·…·………………………………2.4.3 跳转语旬……………¨…枚举¨………………………名称空间………¨¨………2‘。1 ushg语句 …………………2.6.2 名称空间的别名 …………Main()方 法…¨………¨……⒉7.1 多个 Mah0方法…………2.7.2 给Ma血()方法传递参数…有关编译 C#文 件 的更多 内容 控制 台 yo……¨¨¨……¨使用注释………¨…………2.10.1 源文件中的内部注释…2.10.2 XbIL文档…………∵…第 2章2,12,52.62,2.3.4.5.6.72.72.82.92.10.8.9第 7版)#预 处理器指令 …¨¨¨……5811.1 +dcfme矛旧hndef¨ ¨…¨………·5911.2 #i£ #elit+e1se习 阳#g“Ⅱf· ……·5911,3 +warning不口#crror¨ ¨¨¨¨¨¨6011,4 桁egion和#endrcgion¨ ¨¨¨¨611.5 #1inc· ¨¨¨¨……………………………………6I11.6 劫r鲳m犷…………………·61#编 程规则 ……………………⒍12.1 关于标识符的规则………·62122 用法约定…………………·6小结 …¨¨……………………铌象和类型¨ ¨¨… … … ¨ …69和结构 …¨¨¨¨¨¨…¨·69…………¨…………………⒛.1 数据成员…………………… 70.2 函数成员……………………·71.3 只读字段……………………·83名类型 …¨¨¨¨………… 泓构 ¨……¨…¨¨¨¨¨… 85.1 结构是值类型………………·86.2 结构和继承…………………·87,3 结构的构造函数……………·87分类 …¨¨………………… 盯态类 ………………………… B9ect类 ……¨………………·⒆.1 systeln.⒇ect0方 法·…………………90.2 Tos“吧o方法·…………¨¨¨…………90展方法 ……¨……………… 呢结 ………¨…………………叨承 … … ¨… ¨ … … … … … ·95承 的类型 …………………… %,1 实现继承和接 口继承 ………·95.2 多重继承………………∵ … 95.3 结构和类 ……………………·9现继承 ¨¨…………………%.1 虚方法………………………·97.2 隐藏方法……………………·98.3 调用函数的基类版本 ………·994.2.4 抽象类和抽象函数 ……∷·△004,2,5 密封类和密封方法 …………1004.2.6 派生类的构造 函数 …………1014.3 修饰 符 … ¨ … … … … … ¨ … …1064.3.1 可见性修饰符 ……………¨1064.3.2 其他修饰符 …………………1064.4接口… … … … ∴·… …¨ … … …1074.4,1 定义和实现接 口……………1084,4,2 派生的接口………………¨1114.5 /l、 绉占¨¨¨¨¨…………………………………………·113第 5章 泛型 ¨ … … … ¨… … …… ¨……1155,1 概述 … ¨ … … … … …… … … …1155,1.1 性胄旨……………∶·…¨¨¨¨¨¨¨¨¨¨¨1165.1.2 类型安全………………¨ 1175.1.3 二进制代码的重用 ……… 1175.1.4 代码的扩展……………… 1175.1.5 命名约定………………… 1185.2 创建泛型类…¨………………1185.3 泛型类的功能¨………¨Ⅱ…¨1225,3.1 默认值…………………¨1235,⒊ 2 约束 ……………………… 1235,3,3 继承 ……………………… 1265,3.4 静态成员………………… 1275.4 泛 型接 口… … ¨ … …… … … …1275.4.1 协变和抗变……………… 1285.4.2 泛型接口的协变………… 1295.4.3 泛型接口的抗变 ………… 1305.5 泛 型 结 构 ¨ … … … … … ¨ … ¨1315,6 泛 型方 法 … … … … …… … … ¨1345,6.1 泛型方法示例…………… 1345,6.2 带约束的泛型方法……… 1355,6,3 带委托的泛型方法 ……… 1365.64 泛型方法规范…………… 1375.7'小 结 … … ∴·… … ¨ … … … … … 138第 6章 数组……¨…¨……………1396.1 简单数组…………¨…………1396.1.1 数组的声明………………¨1396.1.2 数组的初始化 ………………1

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值