นี่คือคำสั่ง fortc ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
fortc - ยูทิลิตี้ Unidata เพื่อสร้างรหัส C ที่เข้ากันได้กับ fortran
เรื่องย่อ
ป้อมปราการ [-ล ลิบดีร์] [-โอ อปท] ไฟล์
DESCRIPTION
ป้อมปราการ อ่านรหัส C จาก `ไฟล์' แปลงเป็นรหัสที่เข้ากันได้กับ FORTRAN จากนั้น
เขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน การแปลงขึ้นอยู่กับระบบปฏิบัติการ
เพราะไม่มีมาตรฐานในเรื่องนี้
ระบบปฏิบัติการเป้าหมายสามารถระบุได้หลายวิธี ถ้า `-O' ตัวเลือกคือ
กำหนดให้ใช้ระบบปฏิบัติการที่ระบุโดยอาร์กิวเมนต์ มิฉะนั้น ถ้า
ตัวแปรสิ่งแวดล้อม `OS' มีอยู่แล้วระบบปฏิบัติการที่ระบุโดยค่าของมันคือ
ใช้แล้ว; มิฉะนั้น ระบบปฏิบัติการเริ่มต้น - กำหนด ณ เวลาติดตั้ง - is
มือสอง
ชื่อสากลที่ไม่ใช่คำจำกัดความของฟังก์ชัน แต่สามารถเข้าถึงได้จากทั้ง C
และ FORTRAN ควรปิดด้วย `เอฟซี_NAME()' มาโคร:
extern int FC_NAME(foo)(เป็นโมฆะ); /* ฟังก์ชัน FORTRAN */
โครงสร้างภายนอก {
ลอยฉ;
int ฉัน;
} FC_NAME(comblk); /* บล็อกทั่วไปของ FORTRAN */
ซีฟู()
{
ส่งคืน FC_NAME(foo)(); /* เรียกฟังก์ชัน FORTRAN */
}
ฟังก์ชั่น C ที่จะเรียกจาก FORTRAN เขียนดังนี้:
int
/*ฟอร์ทราน*/
ฟู(
ชื่อพาธของอักขระ /* ชื่อไฟล์ของไฟล์ใหม่ */
จำนวนจริง /* จำนวนที่จะสุ่มโดย */
doubleprecision dbl, /* จำนวนที่จะกระตุกโดย */
ฟังก์ชัน void errf /* รูทีนข้อผิดพลาด */
integer rcode /* ส่งคืนรหัสข้อผิดพลาด */)
{
...
หรือเทียบเท่า
int
/*ฟอร์ทราน*/
foo(ชื่อพาธถ่าน*, จำนวนลอย*, ดับเบิล* dbl,
เป็นโมฆะ (*errf)(), int* rcode)
{
...
ข้อควรทราบในการเขียนฟังก์ชันที่เข้ากันได้กับ FORTRAN ได้แก่:
1. ฟังก์ชั่นที่จะแปลงจะถูกทำเครื่องหมายโดยการดำเนินการ `/*ฟอร์ทราน*/' ความคิดเห็นที่
ต้องปรากฏบนบรรทัดก่อนชื่อฟังก์ชัน การประกาศประเภทการส่งคืนใด ๆ จะต้อง
ดำเนินการแสดงความคิดเห็น
2. พารามิเตอร์ที่เป็นทางการต้องประกาศภายในวงเล็บฟังก์ชันและคั่นด้วย
เครื่องหมายจุลภาค
3. พารามิเตอร์ที่เป็นทางการถูกจำกัดให้อยู่ในประเภทต่อไปนี้:
ตัวอักษร or ถ่าน*
สำหรับตัวแปรอักขระ Fortran
ความแม่นยำสองเท่า or สองเท่า*"
สำหรับค่าทศนิยมที่มีความแม่นยำสองเท่า
จริง or ลอย*
สำหรับค่าทศนิยมความแม่นยำเดียว
จำนวนเต็ม or int *
สำหรับค่าจำนวนเต็ม
ชนิด ฟังก์ชัน ชื่อ or ชนิด (*ชื่อ-
สำหรับฟังก์ชันที่ส่งคืนประเภท `ชนิด'.
4. จะต้องไม่มีอะไรสำคัญหลังจากวงเล็บปีกกาเปิด `{' และอยู่ในบรรทัดเดียวกัน
ฟังก์ชันควรเขียนโดยใช้ตัวแปรที่มีชื่อเหมือนกับformal
พารามิเตอร์และความหมายเดียวกัน ในกรณีของพารามิเตอร์ที่เป็นทางการของtype
`ตัวอักษร' (เช่น ตัวแปรอักขระ Fortran) จะมีตัวแปรที่มีชื่อเดียวกัน
และจะเป็นประเภท `ถ่าน*'. นอกจากนี้ สำหรับแต่ละอาร์กิวเมนต์ตัวแปรอักขระ local
ตัวแปรของประเภทอินทิกรัลจะถูกสร้างขึ้นและค่าจะเป็นขนาดของค่าที่เกี่ยวข้อง
ตัวแปรอักขระ ชื่อของตัวแปรนี้จะเป็นชื่อของตัวที่เกี่ยวข้อง
ตัวแปรอักขระด้วย "_เลน" ต่อท้าย (เช่น "ชื่อพาธ_เลน") ตัวแปรความยาวเหล่านี้อาจ
ใช้ในฟังก์ชันเหมือนกับตัวแปรอื่นๆ
ตัวอย่างเช่น ภายใต้ SunOS ฟังก์ชันก่อนหน้าจะกลายเป็น (หากมีอยู่ใน
ไฟล์ `ฟู.src'):
#บรรทัดที่ 1 "foo.src"
int ที่ไม่ได้ลงนาม
#บรรทัดที่ 2 "foo.src"
foo_(ชื่อพาธ, จำนวน, errf, rcode, ชื่อพาธ_len)
ถ่าน *ชื่อพาธ;
int ชื่อพาธ_len;
ลอย * จำนวน;
เป็นโมฆะ (*errf)();
int *rcode;
{
#บรรทัดที่ 9 "foo.src"
โปรดทราบว่า 1) มีการเพิ่มคำสั่งบรรทัดตัวประมวลผลล่วงหน้า 2) ชื่อฟังก์ชันได้รับการ
ต่อท้ายด้วยขีดล่าง; และ 3) พารามิเตอร์ที่เป็นทางการ `ชื่อพาธ_เลน' ได้ถูกสร้างขึ้น
ภายใต้ UNICOS ไฟล์เดียวกันจะกลายเป็น
#รวม
#บรรทัดที่ 1 "foo.src"
int ที่ไม่ได้ลงนาม
#บรรทัดที่ 2 "foo.src"
FOO(ชื่อพาธ, จำนวน, errf, rcode)
_fcd ชื่อพาธ;
ลอย * จำนวน;
เป็นโมฆะ (*errf)();
int *rcode;
{
ถ่าน *ชื่อพาธ = _fcdtocp (ชื่อพาธ);
ไม่ได้ลงชื่อ pathname_len = _fcdlen (ชื่อพาธ);
#บรรทัดที่ 9 "foo.src"
หมายเหตุ โดยเฉพาะ `#include . เพิ่มเติม ' และการสร้างและ
การเริ่มต้นของตัวแปรท้องถิ่น `ชื่อพา ธ' และ `ชื่อพาธ_เลน'.
ยูทิลิตีนี้ถูกนำไปใช้เป็นสคริปต์และใช้ยูทิลิตีที่ระบบจัดหาให้ ความกระหายน้ำ(1) และ
m4(1)
OPTIONS
-L ลิบดีร์"
กำหนดไดเร็กทอรีที่มีไฟล์ไลบรารี 'fortc' ค่าเริ่มต้นคือ
กำหนด ณ เวลาติดตั้ง
-O อปท
กำหนดระบบปฏิบัติการเป็น อปท. ค่าที่ทราบ ได้แก่ 'aix', 'convexos'
`domainos', 'hpux', 'irix', 'msoft', 'next-absoft', 'newsos', 'sunos', 'ultrix',
`unicos' และ `vms' เพื่อให้มีความยืดหยุ่นมากขึ้น ค่าที่ทราบอาจมี
คำต่อท้ายใดๆ (เช่น `sunos_4.1')
และพวกเรา
OS กำหนดระบบปฏิบัติการหากไม่ได้ระบุตัวเลือก `-O' ค่าที่รู้จัก
เหมือนกับ -O ตัวเลือก
ใช้ fortc ออนไลน์โดยใช้บริการ onworks.net