Đây là lệnh fortc có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
fortc - Tiện ích Unidata để tạo mã C tương thích fortran
SYNOPSIS
pháo đài [-L LibDir] [-O OpSys] hồ sơ
MÔ TẢ
pháo đài Đọc mã C từ `hồ sơ', chuyển nó thành mã tương thích FORTRAN, và sau đó
ghi kết quả vào đầu ra chuẩn. Việc chuyển đổi phụ thuộc vào hệ điều hành
bởi vì không có tiêu chuẩn nào trong vấn đề này.
Hệ điều hành đích có thể được chỉ định theo một số cách. Nếu `-O'tùy chọn là
đã cho, thì hệ điều hành được chỉ định bởi đối số của nó sẽ được sử dụng; ngược lại, nếu
biến môi trường `OS'tồn tại, thì hệ điều hành được chỉ định bởi giá trị của nó là
đã sử dụng; nếu không, hệ điều hành mặc định - được xác định tại thời điểm cài đặt - là
đã sử dụng.
Tên chung không phải là định nghĩa hàm nhưng có thể truy cập được từ cả C
và FORTRAN phải được bao quanh bởi dấu `FC_NAME ()'macro:
extern int FC_NAME (foo) (void); / * Hàm FORTRAN * /
cấu trúc bên ngoài {
nổi f;
int tôi;
} FC_NAME (lược); / * Khối chung FORTRAN * /
cfoo ()
{
return FC_NAME (foo) (); / * gọi hàm FORTRAN * /
}
Các hàm C sẽ được gọi từ FORTRAN được viết như sau:
int
/ * FORTRAN * /
foo (
tên đường dẫn ký tự, / * tên tệp của tệp mới * /
số tiền thực, / * số tiền bị đóng băng bằng * /
dbl chính xác kép, / * số lượng để tô màu bằng * /
void function errf, / * error routine * /
số nguyên rcode / * mã lỗi trả về * /)
{
hữu ích. Cảm ơn !
hoặc, tương đương,
int
/ * FORTRAN * /
foo (char * tên đường dẫn, float * số lượng, double * dbl,
void (* errf) (), int * rcode)
{
hữu ích. Cảm ơn !
Những điểm cần lưu ý khi viết các hàm tương thích với FORTRAN là:
1. Các chức năng sẽ được chuyển đổi được đánh dấu bằng một quy trình `/ * FORTRAN * /'bình luận, mà
phải xuất hiện trên dòng trước tên hàm. Mọi khai báo kiểu trả về phải
tiến hành bình luận.
2. Các tham số hình thức phải được khai báo trong dấu ngoặc đơn của hàm và được phân tách bằng
dấu phẩy.
3. Các tham số chính thức được giới hạn trong các loại sau:
tính cách or char *
Đối với biến ký tự Fortran.
hai mặt or kép*"
Đối với các giá trị dấu phẩy động có độ chính xác kép.
thực or trôi nổi*
Đối với các giá trị dấu chấm động chính xác đơn.
số nguyên or int *
Đối với các giá trị số nguyên.
kiểu chức năng tên or kiểu (*tên) ()
Đối với các hàm trả về kiểu `kiểu'.
4. Không được có gì quan trọng sau dấu ngoặc nhọn mở đầu, `{', và trên cùng một dòng.
Các hàm nên được viết bằng cách sử dụng các biến có cùng tên với hàm chính thức
và có cùng ngữ nghĩa. Trong trường hợp các tham số chính thức của kiểu
`tính cách'(tức là các biến ký tự Fortran), một biến có cùng tên sẽ tồn tại
và sẽ thuộc loại 'char *'. Ngoài ra, đối với mỗi đối số biến ký tự, một địa chỉ
biến của kiểu tích phân sẽ được tạo và giá trị của nó sẽ là kích thước của
biến ký tự. Tên của biến này sẽ là tên của
biến ký tự với "_len"thêm vào (ví dụ:"tên đường dẫn_len"). Các biến độ dài này có thể
được sử dụng trong hàm giống như bất kỳ biến nào khác.
Ví dụ, trong SunOS, hàm trước đó sẽ trở thành (nếu nó được chứa trong
tập tinfoo.src'):
# dòng 1 "foo.src"
int không dấu
# dòng 2 "foo.src"
foo_ (tên đường dẫn, số tiền, errf, rcode, pathname_len)
char * tên đường dẫn;
int tên đường dẫn_len;
float * số tiền;
void (* errf) ();
int * rcode;
{
# dòng 9 "foo.src"
Lưu ý rằng 1) chỉ thị dòng tiền xử lý đã được thêm vào; 2) tên hàm đã được
có dấu gạch dưới; và 3) một tham số chính thức, `tên đường dẫn_len', đã được tạo.
Theo UNICOS, cùng một tệp sẽ trở thành
#bao gồm
# dòng 1 "foo.src"
int không dấu
# dòng 2 "foo.src"
FOO (tên đường dẫn, số tiền, errf, rcode)
_fcd đường dẫn có tên;
float * số tiền;
void (* errf) ();
int * rcode;
{
char * pathname = _fcdtocp (tên đường dẫn);
unsigned pathname_len = _fcdlen (tên đường dẫn);
# dòng 9 "foo.src"
Lưu ý, đặc biệt, phần bổ sung `#include và sự sáng tạo và
khởi tạo các biến cục bộtên đường dẫn'và'tên đường dẫn_len'.
Tiện ích này được triển khai dưới dạng tập lệnh và sử dụng các tiện ích do hệ thống cung cấp khát(1)
m4(1).
LỰA CHỌN
-L LibDir "
Xác định thư mục chứa các tệp thư viện `fortc '. Mặc định là
xác định tại thời điểm cài đặt.
-O OpSys
Định nghĩa hệ điều hành là OpSys. Các giá trị đã biết bao gồm `aix ',` lồi',
`domainos ',` hpux', 'irix', 'msoft', 'next-absoft', 'newsos', 'sunos', 'ultrix',
`unicos 'và` vms'. Để cho phép tính linh hoạt cao hơn, các giá trị đã biết có thể có
bất kỳ hậu tố nào (ví dụ: `sunos_4.1 ').
MÔI TRƯỜNG
OS Xác định hệ điều hành nếu tùy chọn `-O 'không được chỉ định. Giá trị đã biết
giống như -O tùy chọn.
Sử dụng fortc trực tuyến bằng các dịch vụ onworks.net