मुझे इनलाइन सी का उपयोग करके सी फ़ंक्शन में सरणी प्राप्त नहीं किया जा सकता है। मुझे कुछ मदद चाहिए, कृपया।पर्ल इनलाइन सी: एरेफ्रफ़ से सी फंक्शन
सबसे पहले, सिर्फ साबित करने के लिए मैं इनलाइन सी काम करने के लिए प्राप्त कर सकते हैं, मैं एक सी समारोह के लिए एक अदिश मान पास होगी:
#!/usr/bin/perl -I.
#
# try1.pl
#
use Inline C;
my $c = 3.8;
foo($c);
__END__
__C__
void foo(double c)
{
printf("C = %f\n", c);
}
और इसे चलाने:
% ./try1.pl
C = 3.800000
अब करना एक ही बात है, लेकिन एक arrayref साथ:
#!/usr/bin/perl -I.
#
# try2.pl
#
use Inline C;
my @abc = (1.9, 2.3, 3.8);
foo(\@abc);
__END__
__C__
void foo(double *abc)
{
printf("C = %f\n", abc[2]);
}
भागो यह:
012,% ./try2.pl
Undefined subroutine &main::foo called at ./try1.pl line 7.
कोई विचार क्या मैं गलत कर रहा हूं? बहुत सराहना में मदद करें!
मैं पर्ल के लिए नया हूं लेकिन रेखा 7 वह रेखा है जिसे आप सरणी को परिभाषित करते हैं, क्या आप सरणी को सही ढंग से परिभाषित कर रहे हैं। क्या आप सही तरीके से गुजर रहे हैं (/? के साथ) क्या इसे एपीआई में कुछ के माध्यम से एक सी सरणी में परिवर्तित करने की आवश्यकता है (यह नहीं कि यह एक्सडी कैसे काम कर रहा है)? –