仿真在线:有限元分析咨询与培训中心——Ansys|Fluent|Abaqus|HFSS|SolidWorks|课程培训

Fluent UDF【6】:預處理命令【轉發】

2017-07-05  by:CAE仿真在線  來源:互聯網

今天要講的內容是關于C語言的預處理。搞清楚了這個,就可以分析UDF中的各種頭文件源代碼,從此寫UDF不求人。

本文部分內容參考自《程序設計與C語言引論》第2版。

1

關于預處理

在UDF的各種頭文件中(文件路徑D:\Program Files\ANSYS Inc\v180\fluent\fluent18.0.0\src),存在各種以#開頭的語句,如下圖中所示。

Fluent UDF【6】:預處理命令【轉發】fluent仿真分析圖片1

這些以#開頭的語句就是C語言的預處理命令。
C語言的預處理工作由一個預處理程序來完成,任何C系統都有一個預處理程序,其負責處理源程序中的所有預處理命令,從而生成不含預處理命令的源程序。C語言的預處理目的是為了方便編程。

預處理命令以獨立的預處理命令行的形式出現在源程序中,# 是其特殊的引導符號。如果源程序中某一行的第一個非空格符號是 # ,這就是一個預處理命令行。預處理命令的作用是要求預處理程序完成一些操作。

2

文件包含命令

文件包含命令是以#include開始的行,其作用是把特定文件的內容復制到當前源文件中。其存在兩種形式:

# include <文件名> # include "文件名"

兩者的差異在于文件搜索方式的不同。
第一種形式,預處理程序直接到系統指定的某些目錄中去查找所需文件,目錄指定方式由具體系統確定,通常指定幾個系統目錄。
第二種形式,預處理程序現在源文件所在目錄中查找,若沒找到文件則再到系統指定的目錄中去查找。
文件包含命令的處理過程:首先查找所需文件,找到后就用該文件的內容取代這個包含命令行。替換進來的文件中若有預處理命令,也將被處理。

3

宏定義和宏替換

#define開始的行稱為宏定義命令行。宏定義包含兩種形式:

  • 簡單宏定義

  • 帶參數宏定義

3.1 簡單宏定義


簡單宏定義的形式為:
#define 宏名字 替代文本
其中宏名字是任意標識符,替代文本可以是任意一段正文,其中可以包括程序中能出現的任何字符(包括空格等),一直延續到本行結束。如果需要寫多行的替代文本,可以在行末寫一個反斜杠\,這將使下一行內容繼續被當做替代文本。
宏定義的作用就是為宏名字定義替代
如果一個宏名字的替代文本是數值或可以靜態求值的表達式,當這個宏名字在程序某處出現,就相當于在那里寫了這個數值或表達式。
例如,如果進行了如下定義:

#define SLD static long double

伺候,宏名字SLD就代表static long double。若程序中出現:

SLD x=2.4, y=9.16;

經過預處理后,源代碼被翻譯為:

static long double x=2.4,y=9.16;

預處理并不檢查宏定義中的替代文本是否為合法的C語言結構,也不檢查替換之后的結果是否為正確的C語言程序段,其只是簡單地完成文本替換工作。

3.2 帶參數的宏定義


帶參數的宏定義形式為:
#define 宏名字(參數列表) 替代正文
使用帶參宏時,不但要給出宏的名字,還要用類似函數實參的形式給出各宏參數的替代段,多個替代段之間用逗號分隔。這種形式也成為一個宏調用。
對宏調用的替換分兩部分進行:首先用實際替代段去替換宏定義的替代正文里出現的各個宏參數,然后把替換的結果(展開后的替代正文)代入程序里出現宏調用的為準。
例如,定義求兩個數據中較小數,可定義宏:

#define min(A,B) ((A)<(B)?(A):(B))

若程序中出現如下語句:

z = min(x+y,x*y)

則宏展開后則為:

z = ((x+y)<(x*y)?(x+y):(x*y));

帶參數的宏定義與函數看起來很類似,但實際上有很大的不同。切記宏定義只是簡單的文本替換。

4

條件翻譯命令

條件編譯的作用是在源程序中劃出一些片段,使預處理程序可根據條件保留或丟掉一段,或從幾段中選擇一段保留。實現條件編譯的預處理命令有四個,分別是:

#if #else #elif #endif

其中,#if#elif命令以一個能靜態求出整型值的表達式為參數。另外兩個沒有參數。條件編譯命令的常見使用形式有三種:

形式一

#if 整形表達式 …… /*代碼片段,條件成立時保留*/ #endif

形式二

#if 整形表達式 …… /*條件成立時保留*/ #else …… /*條件不成立時保留*/ #endif

形式三

#if 整形表達式 …… /*條件成立時保留*/ #elif 整形表達式 …… /*elif部分,可以有多個*/ #elif 整形表達式 …… #else …… /*條件都不成立時保留*/ #endif

其中整形表達式是預處理條件,值為0表示條件不成立,否則條件成立。這里常用==,!=等做判斷,例如判斷宏定義的符號是不是等于某個值等。
為了方便,C語言提供了一個特殊謂詞
defined,其使用形式有兩種:

define 標識符 define (標識符)

當標識符是有定義的宏名字時,define(標識符)將得到1,否則得到0。這種表達式常被作為條件編譯的條件。此外還有兩個預處理命令#ifdefifndef,他們相當于#if和#define混合的簡寫形式。

#ifdef 標識符 /*相當于#if define(標識符)*/ #ifndef 標識符 /*相當于#if !define(標識符)*/

Fluent UDF【6】:預處理命令【轉發】fluent仿真分析圖片2

Fluent UDF【6】:預處理命令【轉發】fluent分析案例圖片3

周末有活動,提前更新~


轉自公眾號:胡坤 CFD仿真之道

開放分享:優質有限元技術文章,助你自學成才

相關標簽搜索:Fluent UDF【6】:預處理命令【轉發】 Fluent培訓 Fluent流體培訓 Fluent軟件培訓 fluent技術教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學反應 fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析 

編輯
在線報名:
  • 客服在線請直接聯系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com




主站蜘蛛池模板: 山东宝沣新材料有限公司| 暖气片-工程暖气片厂家【专注工程暖气片30年】-北铸暖气片 | 举升机,登高梯,升降平台,升降车,升降机,高空作业平台车 | 长沙升阳化工材料有限公司| 南京文化墙设计公司,南京包装设计制作印刷,南京PPT设计公司,导视制作公司,企业logo设计 | 幼儿园设计公司/南昌酒店装修/办公室/餐厅/民宿/店面/展厅/装修设计公司-益昌装饰集团 | 化妆粉扑厂家【秀兰】一线品牌资格供应商_海绵粉扑批发_气垫粉扑价格_广州秀兰生物科技有限公司 化工招聘网 化工人才网|化工英才网-化工企业招聘首选网站 | 橡塑板_橡塑板厂家_橡塑保温管厂家_廊坊虓龙保温材料有限公司 | 乌海市腐植酸盐加工,内蒙古腐植酸钠,内蒙古型煤粘合剂生产厂家|创联腐植酸盐加工有限公司 | 河北安润防腐管业股份有限公司-远程供液管路_远距离供液管路_远程供液系统 | 直膨式空调机组_风冷恒温恒湿_转轮式热回收_屋顶式空调机组_德州瑞尼森环保科技有限公司 | 爬架网@建筑爬架网@冲孔建筑爬架网片@工地冲孔建筑爬架网片@工地冲孔建筑爬架网片厂家@工地冲孔建筑爬架网片生产厂家-安平县诺德金属制品有限公司 | 烘干机|烘干房|网带烘干机|滚筒烘干机|炒货机-河南曼瑞通机械有限公司 | 液位变送器_智能压力变送器_3051差压变送器_单双法兰,投入式,电容式,温度变送器-淮安润中仪表科技有限公司 | 小程序开发,网站建设,APP开发,商城系统开发,社区团购系统开发,区块链溯源,互联网资质办理-软多信息技术有限公司_河南软多信息技术有限公司 | 银马全自动免烧砖机设备厂家,提供免烧砖机价格报价及生产视频 | 自复式过欠压保护器-上海能曼电气有限公司 | 伸缩接头,限位伸缩接头,传力接头,可拆卸接头,橡胶接头,衬四氟橡胶接头,橡胶软连接,橡胶补偿器,防水套管- 巩义市隆盛管道设备有限公司 | 中国C919飞机橡胶接头供应商-上海淞江减震器集团有限公司官方网站 | 真石漆设备-干粉砂浆生产线-保温砂浆机械-郑州屹成机械设备 | 组合包装箱,折叠包装箱,烟台木箱,烟台包装箱-烟台顺达包装有限责任公司 | 余压控制器,余压监控系统,余压传感器-浙江巨川电气科技有限公司 | 郑州建网站,郑州做网站,郑州网站建设,郑州网站制作,郑州高端定制网站,郑州APP开发 | 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 首页|广东蒙泰高新纤维股份有限公司|丙纶细旦丝|丙纶异形丝|丙纶FDY网络丝 - 广东蒙泰高新纤维股份有限公司 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 悬挂式小鼠笼架,植物标本采集箱,昆虫标本盒厂家-北京合力科创科技发展有限公司 | 全球石油化工网 - 石油化工资讯,石油化工机械,石油化工设备,石油化工贸易,石油化工技术,尽在石油化工网 | 塑木地板,塑木栏杆,塑木地板价格,塑木地板厂家—浙江尚元塑木制品有限公司 | 筱晓(上海)光子技术有限公司官网,MCT探测器,半导体激光二极管,中红外QCL激光器,光纤放大器,光电探测器 | 仪器仪表维修_示波器维修_进口分析仪维修_热像仪维修_上海仰光电子仪器仪表维修部 | 直膨式空调机组_风冷恒温恒湿_转轮式热回收_屋顶式空调机组_德州瑞尼森环保科技有限公司 | 九江市石化塑业有限公司| 制砂生产线,河卵石制砂机,洗砂机-巩义市铭德矿山设备厂 | 印刷包装网_印刷包装_机械设备_行业动态_展会信息 | 长沙物流公司|湖南货物运输公司|长沙第三方物流公司-国联物流 湖南第三方物流专家 | 江苏吉宏特专用汽车制造有限公司_联合吸污车-下水道管道清洗疏通车-综合养护吸排车 | 无铅锡膏,无铅锡膏厂家,有铅锡膏厂家,高温锡膏厂家,环保锡丝,贴片红胶-东莞市科舜电子科技有限公司 | 暖气片_铜铝复合暖气片_钢制散热器厂家-德克菲勒暖气片 | 园林绿化平台|园林绿化网|苗木网|苗圃网||苗木报价网|园林招标网|园林苗木网|园林工程网|景观设计网|园林机械网|绿化苗木网| | 蜀山人才网_蜀山招聘网_求职找工作平台 |