The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Программа одновременно на Perl и на Си. (perl )


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: perl,  (найти похожие документы)
Date: Mon, 20 May 2002 19:15:45 +0400 From: Nikolay Pichtin <Nikolay.Pichtin@f30.n5056.z2.fidonet.org> Newsgroups: fido7.ru.perl Subject: Программа одновременно на Perl и на Си. >> чтобы в Perl можно было написать вот так: >> >> #define true 1 >> #define false 0 >> #define begin { >> #define end } >> #define and && >> #define or || >> #define not ! Вот из упомянутой статьи: Поскольку переменные в Perl начинаются со знака доллара ($), его надо было переопределить в пустую строку. Поскольку Perl позволяет обращаться к переменной: $var как $ var (т.е. можно вставлять пробел между знаком доллара и именем переменной), то определение $ в C как пустой строки даст возможность: $ foo обращаться к переменной $foo в Perl и к foo в C. Двуязычная Perl/C программа Таким образом, можете взять этот файл и использовать его так: $ perl kola.pl <arg1> <arg2> <arg3> или так: $ gcc kola.c -o kola $ ./kola <arg1> <arg2> <arg3> #include <stdio.h> #include <stdlib.h> #define ARGV argv #define $ /* unshift @ARGV, "foo"; sub atoi{ $_[0] } "*/ main (int argc, char *argv[]) //"; { int $ tab[atoi( $ ARGV[3] )]; int $ i; int $ which, $ offset; $ which = $ offset = 1; $ tab [1] = atoi( $ ARGV[ $ which ] ); printf("%d", $ tab[1]); for( $ i = 2; $ i <= atoi( $ ARGV[3] ) ; $ i++ ) { $ tab[ $ offset ] -= 1; if ( $ tab[ $ offset ] == 0 ) { $ offset++; $ which = ( ! ( -- $ which ) ) + 1; } printf("%d", $ tab[ $ i ] = atoi( $ ARGV[ $ which ] )); } printf("\n"); }

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру