LabVIEW編程技巧:如何實現C語言中條件運算符「?:」的功能

2020-12-12 編碼那些事

目的

在C語言中,條件運算符「? : 」是唯一的一個三目運算符,它對第一個表達式作真/假檢測,然後根據其結果返回另外兩個表達式中的一個,其通用表達式形式如下圖所示:

上式中y的值取決於表達式1的值,當其值為真時,y的值為表達式2的值,否則,y的值為表達式3的值。

舉個簡單的例子,對於下面的C語言代碼:

y = x > 0 ? 1 : -1;

其實現的功能是,當輸入x的值大於0時,y的值為1,否則,y的值為-1。在LabVIEW中如何實現這種功能呢?下面給出幾種方法。

方法1:最簡單的方法直接使用「選擇」函數實現

最直接最簡單的方法,可以在LabVIEW中使用「選擇」函數實現。在程序框圖的函數模板中選擇編程-->比較子模板中可以找到這個函數,其使用說明如下圖所示:

實現代碼如下圖所示:

方法2:使用條件結構方法實現

使用條件結構方法實現,這種方法相對於第1種方法稍微麻煩些,條件結構中真和假兩種情況的代碼如下圖所示:

方法3:使用公式節點寫C語言代碼實現

這種方法在LabVIEW中使用公式節點,在公式節點中寫C語言代碼實現,其代碼如下圖所示:

這種方法投機取巧了些,本質上是完全使用的C語言中的三目運算符「? : 」實現。

方法4:使用表達式節點寫C語言代碼實現

這種方法同上面公式節點類似,區別在於使用的是LabVIEW中的表達式節點,其位置位於函數模板中的編程-->數值子模板中,其使用說明如下圖所示:

使用表達式節點的實現代碼如下圖所示:

注意,使用表達式節點時,在表達式中只能包含一個變量,這也是與公式節點的區別所在。

總結

本文介紹了四種方法實現C語言中條件運算符「? : 」的功能,從這兒可以看出,在LabVIEW中實現也是比較簡單的。

本文由編碼那些事原創,請關注+轉發+收藏+點讚,帶你一起長知識!

相關焦點

  • 嵌入式系統高級C語言編程
    內容簡介  《嵌入式系統高級C語言編程》將主要介紹針對嵌入式系統的基於C語言的軟體項目開發的流程,較為複雜的c語言編程知識和技巧,編程風格和調試習慣
  • C語言中的運算符
    一、前言在嵌入式開發中,我們一般選用C語言作為開發語言。一個主要的原因在於C語言提供了大量的運算符,比如我們對硬體的操作一般涉及到對位的操作,而C語言就提供了這樣的運算符,這是其他語言不具備的。二、C語言運算符有哪些C語言有大量的運算符,可大致分為以下幾類:括號與結構體符號、單目、算術、移位、關係、位、邏輯、三目、賦值、逗號。括號與結構體符號:括號包括()、[],結構體符號指的是結構體成員引用時的符號「->」、「.」
  • C語言中的運算符和表達式
    二、算術運算符和算術表達式對計算機中數據進行算術運算的運算符,稱為算術運算符,包括數學中學到的加減乘除和一些擴展。8、算術表達式使用算術運算符將運算對象連接起來、符合C語言語法規則的式子。五、條件運算符和條件表達式條件運算符是C語言中唯一的一個三目運算符,它需要三個操作數,條件表達式為:表達式1?表達式2:表達式3。?
  • C語言為什麼要有「->」運算符,為何不使用點運算符代替它呢?
    拋開結構體不談,C語言中的指針本身並無需要用到點運算符「.」的地方,因此結構體指針與點運算符「.」結合時,編譯器把這種結合解釋為訪問結構體成員,按理說並不會產生歧義,C語言以語法簡潔聞名,那為什麼還要提供「多餘」的「->」運算符呢?或者說,C語言中的箭頭運算符「->」有什麼歷史淵源嗎?
  • C語言入門教程運算符
    >4)/ :除法,第一個操作數除以第二個操作數5)% :求模(取餘),第一個操作數除以第二個操作數所得餘數雙目運算符中,C語言中的加號、減號與數學中的一樣。乘號、除號因為ASCII符號中沒有與數學中相對應的符號,所以使用星號表示乘號,使用斜線表示除號。C語言中增加了一個求模運算符,是用來取餘的。需要注意的是,求模運算符的兩個操作數必須是整型。
  • Python中的條件表達式,也稱之為三元運算符,使用方法和技巧
    Python中的條件表達式在其他程式語言中也稱之為三元運算符,在C#和JAVA中都有三元運算符,Python中的條件表達式是基於真(true)假(false)的條件進行判斷的,或者說三元運算符在操作的過程中使用了三個元素如:【條件為真的結果】
  • C語言編程習慣心得
    從編程菜鳥一路走來,慢慢對編程習慣有了一個新的認識。因為曾經我寫的代碼的可讀性令自己也感到哭啼皆非,搞得自己暈頭轉向。今天特意來分享一下自己的一些關於編程習慣的心得。很多人以為代碼一敲完,能得到預期的結果,就萬事ok,其實不然。後面的程序調試、維護和升級是一個項目中很重要的一部分,這就要求我們必須規範編程習慣。
  • 跟我學java編程—Java邏輯運算符
    邏輯運算符用於連接兩個條件表達式或布爾類型的變量,用於執行多個判斷。在數學中,表示一個數值的範圍時,經常用不等式來表述。例如:假設一個數值取值範圍為0到100,設該數值為x,不等式0<x<100給出了x的取值範圍,在Java程序語言中,邏輯運算符可以實現類似數學中的不等式。下表列出了Java語言支持的邏輯運算符,表中假設布爾變量A為真,變量B為假。
  • C語言中的三目運算符是啥?有何用處?
    一般來說,C語言中的三目運算符為a?b:c即有三個參與運算的量。由條件運算符組成條件表達式的一般形式為:表達式1?表達式2: 表達式3求值規則為:如果表達式1的值為真,則以表達式2 的值作為條件表達式的值,否則以表達式2的值作為整個條件表達式的值。 條件表達式通常用於賦值語句之中。
  • 單片機c語言教程:C51運算符和表達式
    如果你是個DELPHI 編程愛好者或是DELPHI程式設計師,你對變量的定義也許習慣了DELPHI 的關鍵字,如 int 類型常會用關鍵字Integer來定義,在用 單片機c語言時你還想用回這個的話,你能這樣寫:本文引用地址:http://www.eepw.com.cn/article/170888.htmtypedef int integer;
  • 基於labview的示波器控制設計
    因此對示波器進行遠程自動控制,實現對示波器的各項功能的自動操作和對數據的處理已成為很多科研實驗和工程項目必需的環節。最近,我經常接到很多工程師的詢問有關如何控制示波器的電話。下面就來談談計算機控制示波器的步驟和方法,並利用實例進行分析和講解。本文引用地址:http://www.eepw.com.cn/article/234570.htm1.
  • C語言 | 算術運算符
    「要成為絕世高手,並非一朝一夕,除非是天生武學奇才,但是這種人…萬中無一」這道理放在C語言學習上也一併受用
  • LabVIEW的深入探索---LabVIEW中的時間節點函數
    時間格式代碼包括:%a(星期名縮寫),%b(月份名縮寫),%c(地區日期/時間),%d (日期),%H(時,24小時制),%I(時,12小時制),%m(月份),%M (分鐘),%p(am/pm標識),%S(秒),%x(地區日期),%X(地區時間),%y(兩位數年份),%Y(四位數年份),%u(小數秒,位精度)。
  • 簡碼編程:如何通俗理解javaScript中的三目運算符?
    如何通俗理解javaScript中的三目運算符簡碼編程工作中經常需要用到JavaScript,要閱讀別人寫的JS代碼,所以經常會遇到各種花式語法技巧,其中三目運算符就是比較難理解的一種語法技巧其中,經常會需要用到判斷語句,某條件被滿足時執行某操作,不被滿足時執行另一個操作,如果用 if else 語句,會比較浪費文字,用三目運算符的話就很精簡了。三目運算符中的問號「?」表示前麵條件判斷不確定,冒號「:」表示後面兩個候選值或操作二選一。問號就是對此有疑問,而冒號的兩個點像不像二選一?這樣容易理解了吧?
  • 程式設計師編程之路的基礎C語言
    尤其是考C語言的小夥伴,小編用這兩三年的編程知識為你們在考前突擊突擊,希望能夠有點用處,至於office,小編覺得無能為力。。。字太多,看的頭疼~~~ 作者:浪潮之巔的小蘿蔔頭(純手打,求支持!)四、編程題(大部分人死在這裡)1.突出反映的問題就是電腦敲代碼的時間肯定不夠,C語言作為一門偏理性的東西,實踐(敲代碼)對學好C語言以及其他越來越高級的語言來說至關重要
  • 教你輕鬆學會C語言系列之——五花八門的運算符
    在2017年年底公布的全球超算500強榜單中,中國超級計算機「神威·太湖之光」位於榜首,其浮點運算速度峰值可達每秒12.5億億次,持續運算速度為每秒9.3億億次。回到程序語言中,比如:「1+1」就是一個最簡單的表達式,其中的兩個數字(1)就是操作數,加號(+)就是運算符,共同構成了一個表達式。
  • Linux系統下的c語言編程規範整理
    每一種程式語言都有它獨特的編程規範,畢竟無規矩不成方圓,如果編碼不規範,一方面程序顯得晦澀難懂,讓其他讀者維護起來特別困難;另一方面自己再次查看的時候也會有一定困難。今天小編就來聊聊Linux環境下c語言編程的規範。
  • C/C++編程筆記:深入解析C語言結構!帶你看懂C語言代碼
    如何訪問結構元素?使用Point()運算符訪問結構成員。輸出:x = 2,y = 0,z = 1x = 20此功能在C ++中不可用,僅在C中可用。什麼是結構數組?在結構範圍內的任何位置,都可以通過任何功能訪問結構成員。結構內部的功能: C結構不允許結構內部的功能靜態成員: C結構體內不能有靜態成員訪問修飾符: C程式語言不支持訪問修飾符。因此它們不能在C結構中使用。在Structure中創建構造: C中的Structure不能在Structure內部具有構造函數。今日分享就到這裡咯!
  • LabVIEW與樂高NXT機器人的入門
    Labview 開始研製出來,定位是虛擬儀器軟體,Labview認為PC機+軟體+採集卡就是一臺多功能儀器,可以替代眾多硬體儀器,如萬用表、示波器、頻譜儀等,而且功能可以隨測試對象的特點而變化,只要重新用labview軟體編制新程序即可。
  • labview的深入探索之事件結構中的TIMEOUT進行數據採集合適嗎?
    labview串口數據保存_labview如何對串口數據緩存 LabVIEW是一種基於圖形程式語言的開發環境它與傳統程式語言有著諸多相似之處,如相似的數據類型、數據流控制結構、程序調試工具等。但二者最大的區別在於:傳統程式語言是用文本語言編程,而LabVIEW用圖形語言(即各種圖標、圖形符號、連線等)編程。編程簡單方便,界面形象直觀,具有強大的數據可視化分析和儀器控制能力。Labview有豐富的文件操作函數庫,可以方便地進行文件的讀寫。Labview可以讀寫文本文件、數據報表文件、二進位文件和測試文件。