ນີ້ແມ່ນຄໍາສັ່ງ fortc ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
fortc - ຜົນປະໂຫຍດ Unidata ເພື່ອສ້າງລະຫັດ C ທີ່ເຂົ້າກັນໄດ້ fortran
ສະຫຼຸບສັງລວມ
fortc [-ລ LibDir] [-ອ OpSys] ເອກະສານ
ລາຍລະອຽດ
fortc ອ່ານລະຫັດ C ຈາກ `ເອກະສານ', ປ່ຽນມັນເຂົ້າໄປໃນລະຫັດທີ່ເຂົ້າກັນໄດ້ FORTRAN, ແລະຫຼັງຈາກນັ້ນ
ຂຽນຜົນໄດ້ຮັບເປັນຜົນຜະລິດມາດຕະຖານ. ການຫັນປ່ຽນແມ່ນຂຶ້ນກັບລະບົບປະຕິບັດການ
ເນື່ອງຈາກວ່າບໍ່ມີມາດຕະຖານໃນເລື່ອງນີ້.
ລະບົບປະຕິບັດການເປົ້າຫມາຍສາມາດຖືກກໍານົດໃນຫຼາຍວິທີ. ຖ້າ `-O' ທາງເລືອກແມ່ນ
ໃຫ້, ຫຼັງຈາກນັ້ນ, ລະບົບປະຕິບັດການທີ່ລະບຸໂດຍການໂຕ້ຖຽງຂອງມັນຖືກນໍາໃຊ້; ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຫາກວ່າ
ຕົວແປສິ່ງແວດລ້ອມOS' ມີຢູ່, ຫຼັງຈາກນັ້ນ, ລະບົບປະຕິບັດການທີ່ລະບຸໂດຍມູນຄ່າຂອງມັນແມ່ນ
ໃຊ້; ຖ້າບໍ່ດັ່ງນັ້ນ, ລະບົບປະຕິບັດການເລີ່ມຕົ້ນ - ກໍານົດເວລາຕິດຕັ້ງ - ແມ່ນ
ໃຊ້ແລ້ວ.
ຊື່ທົ່ວໂລກທີ່ບໍ່ແມ່ນຄໍານິຍາມຂອງຫນ້າທີ່, ແຕ່ວ່າຈະສາມາດເຂົ້າເຖິງໄດ້ຈາກທັງສອງ C
ແລະ FORTRAN ຄວນໄດ້ຮັບການປິດລ້ອມໂດຍ `FC_NAME()'ມະຫາພາກ:
extern int FC_NAME(foo)(void); /* ການທໍາງານ FORTRAN */
ໂຄງສ້າງພາຍນອກ {
ລອຍ f ;
int i;
} FC_NAME(comblk); /* FORTRAN ຕັນທົ່ວໄປ */
cfoo()
{
ກັບຄືນ FC_NAME(foo)(); /* ໂທຫາຫນ້າທີ່ FORTRAN */
}
ຟັງຊັນ C ທີ່ຈະຖືກເອີ້ນຈາກ FORTRAN ແມ່ນຂຽນດັ່ງນີ້:
int
/*FORTRAN*/
ຟູ(
ຊື່ເສັ້ນທາງຕົວອັກສອນ, /* ຊື່ໄຟລ໌ຂອງໄຟລ໌ໃໝ່ */
ຈໍານວນທີ່ແທ້ຈິງ, /* ຈໍານວນທີ່ຈະ frobdicate ໂດຍ */
doubleprecision dbl, /* ຈໍານວນທີ່ຈະ tizzle ໂດຍ */
ຟັງຊັນ void errf, /* routine routine */
integer rcode /* ສົ່ງຄືນລະຫັດຄວາມຜິດພາດ */)
{
...
ຫຼື, ທຽບເທົ່າ,
int
/*FORTRAN*/
foo(char* pathname, float* amount, double* dbl,
void (*errf)(), int* rcode)
{
...
ຈຸດທີ່ຄວນສັງເກດໃນການຂຽນຟັງຊັນທີ່ເຂົ້າກັນໄດ້ກັບ FORTRAN ແມ່ນ:
1. ໜ້າທີ່ທີ່ຈະຖືກປ່ຽນແມ່ນໝາຍໄວ້ໂດຍການດຳເນີນການ `/*FORTRAN*/' ຄໍາເຫັນ, ເຊິ່ງ
ຕ້ອງປາກົດຢູ່ໃນແຖວກ່ອນຊື່ຟັງຊັນ. ການປະກາດປະເພດຜົນຕອບແທນໃດຫນຶ່ງຕ້ອງ
ດໍາເນີນການຄໍາເຫັນ.
2. ຕົວກໍານົດການຢ່າງເປັນທາງການຕ້ອງໄດ້ຮັບການປະກາດພາຍໃນວົງເລັບຟັງຊັນແລະຖືກແຍກອອກໂດຍ
ຈຸດ.
3. ຕົວກໍານົດການຢ່າງເປັນທາງການຖືກຈໍາກັດຢູ່ໃນປະເພດດັ່ງຕໍ່ໄປນີ້:
ລັກສະນະ or char*
ສໍາລັບຕົວແປຕົວແປ Fortran.
ຄວາມຊັດເຈນສອງເທົ່າ or ສອງ*"
ສໍາລັບຄ່າຈຸດເລື່ອນຄວາມຊັດເຈນສອງເທົ່າ.
ທີ່ແທ້ຈິງ or ລອຍ *
ສໍາລັບຄ່າຈຸດເລື່ອນຄວາມຊັດເຈນດຽວ.
integer or int *
ສຳລັບຄ່າຈຳນວນເຕັມ.
ປະເພດ ຫນ້າທີ່ ຊື່ or ປະເພດ (*ຊື່)()
ສໍາລັບຟັງຊັນທີ່ກັບຄືນມາປະເພດ `ປະເພດ'.
4. ຈະຕ້ອງບໍ່ມີຫຍັງທີ່ສໍາຄັນຫຼັງຈາກວົງເລັບເປີດ, `{', ແລະຢູ່ໃນເສັ້ນດຽວກັນ.
ຫນ້າທີ່ຄວນຈະຖືກຂຽນໂດຍໃຊ້ຕົວແປທີ່ມີຊື່ດຽວກັນກັບຢ່າງເປັນທາງການ
ຕົວກໍານົດການ, ແລະມີ semantics ດຽວກັນ. ໃນກໍລະນີຂອງຕົວກໍານົດການຢ່າງເປັນທາງການຂອງປະເພດ
`ລັກສະນະ' (ເຊັ່ນ Fortran character-variable), ຕົວແປທີ່ມີຊື່ດຽວກັນຈະມີຢູ່
ແລະຈະເປັນປະເພດ `char*'. ນອກຈາກນັ້ນ, ສໍາລັບແຕ່ລະການໂຕ້ຖຽງຕົວແປຕົວແປ, ທ້ອງຖິ່ນ
ຕົວແປຂອງປະເພດປະສົມປະສານຈະຖືກສ້າງຂື້ນແລະມູນຄ່າຂອງມັນຈະເປັນຂະຫນາດຂອງຕົວເຊື່ອມຕໍ່
ຕົວແປຕົວແປ. ຊື່ຂອງຕົວແປນີ້ຈະເປັນຊື່ຂອງຕົວແປທີ່ກ່ຽວຂ້ອງ
ຕົວແປຕົວແປດ້ວຍ "_ເລນ" ເພີ່ມເຕີມ (ເຊັ່ນ "pathname_len").ຕົວແປຄວາມຍາວເຫຼົ່ານີ້ອາດຈະ
ຖືກນໍາໃຊ້ໃນຫນ້າທີ່ຄືກັນກັບຕົວແປອື່ນໆ.
ຕົວຢ່າງ, ພາຍໃຕ້ SunOS ຫນ້າທີ່ກ່ອນຫນ້າຈະກາຍເປັນ (ຖ້າມັນຖືກບັນຈຸຢູ່ໃນ
ໄຟລ໌ `foo.src'):
#ແຖວທີ 1 "foo.src"
ລົງນາມ int
#ແຖວທີ 2 "foo.src"
foo_(ຊື່ເສັ້ນທາງ, ຈຳນວນ, errf, rcode, pathname_len)
char *ຊື່ເສັ້ນທາງ;
int pathname_len;
float *ຈໍານວນເງິນ;
void (*errf)();
int *rcode;
{
#ແຖວທີ 9 "foo.src"
ໃຫ້ສັງເກດວ່າ 1) preprocessor line directives ໄດ້ຖືກເພີ່ມ; 2) ຊື່ຫນ້າທີ່ໄດ້
ຕໍ່ທ້າຍດ້ວຍຂີດກ້ອງ; ແລະ 3) ຕົວກໍານົດການຢ່າງເປັນທາງການ, `pathname_len', ໄດ້ຖືກສ້າງຂື້ນ.
ພາຍໃຕ້ UNICOS, ໄຟລ໌ດຽວກັນຈະກາຍເປັນ
#ລວມທັງ
#ແຖວທີ 1 "foo.src"
ລົງນາມ int
#ແຖວທີ 2 "foo.src"
FOO(ຊື່,ຈຳນວນ, errf, rcode)
_fcd ຊື່ເສັ້ນທາງ;
float *ຈໍານວນເງິນ;
void (*errf)();
int *rcode;
{
char *pathname = _fcdtocp (ຊື່ເສັ້ນທາງ);
unsigned pathname_len = _fcdlen (ຊື່ເສັ້ນທາງ);
#ແຖວທີ 9 "foo.src"
ຫມາຍເຫດ, ໂດຍສະເພາະ, ເພີ່ມເຕີມ `#include ' ແລະການສ້າງແລະ
ການເລີ່ມຕົ້ນຂອງຕົວແປທ້ອງຖິ່ນ `ຊື່ເສັ້ນທາງ' ແລະ `pathname_len'.
ຍູທິລິຕີ້ນີ້ຖືກປະຕິບັດເປັນ script ແລະນໍາໃຊ້ຜົນປະໂຫຍດທີ່ລະບົບສະຫນອງ sed(1) ແລະ
m4(1).
OPTIONS
-L LibDir"
ກໍານົດໄດເລກະທໍລີທີ່ມີໄຟລ໌ຫ້ອງສະຫມຸດ 'fortc'. ຄ່າເລີ່ມຕົ້ນແມ່ນ
ກໍານົດເວລາຕິດຕັ້ງ.
-O OpSys
ກໍານົດລະບົບປະຕິບັດການເປັນ OpSys. ຄ່າທີ່ຮູ້ຈັກລວມມີ `aix', `convexos',
`domainos', `hpux', `irix', `msoft', `next-absoft', `newsos', `sunos', `ultrix',
`unicos', ແລະ `vms'. ເພື່ອອະນຸຍາດໃຫ້ມີຄວາມຍືດຫຍຸ່ນຫຼາຍກວ່າເກົ່າ, ຄຸນຄ່າທີ່ຮູ້ຈັກອາດມີ
ຄໍາຕໍ່ທ້າຍໃດໆກໍຕາມ (ເຊັ່ນ: `sunos_4.1').
ENVIRONMENT
OS ກໍານົດລະບົບປະຕິບັດການຖ້າຕົວເລືອກ `-O' ບໍ່ໄດ້ຖືກລະບຸ. ຄຸນຄ່າທີ່ຮູ້ຈັກ
ແມ່ນຄືກັນກັບ -O ທາງເລືອກ.
ໃຊ້ fortc ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net