मेरे पास एक ऐसा फ़ंक्शन है जो एक सरणी की जांच करता है और जांच सफल होने पर सरणी अनुक्रमणिका देता है।फ़ंक्शन लौटने के लिए त्रुटि कोड वापस करने का सही तरीका आकार_t
मेरे कोड में मैंने स्पष्टता के लिए एक एरे इंडेक्स type_t
से संबंधित प्रत्येक प्रकार बनाया है।
इस फ़ंक्शन के लिए उस स्पष्टता को बनाए रखने का पसंदीदा तरीका क्या है? क्या मुझे एक त्रुटि चर के लिए पॉइंटर तर्क लेना चाहिए और उसे सेट करना चाहिए?
inline size_t
lin_search(const double *pxa, const double x, const size_t idxlow, const size_t idxhigh)
{
for (size_t i = idxlow; i < idxhigh; i++)
{
if (pxa[i] <= x && pxa[i+1] > x)
return i;
}
return -1; // If I change the return type to f.ex long int this works
// but I am no longer consistent
}
तो मैं इस तरह
index = linsearch(parray, x, 0, n - 1);
if (index == -1)
... not found
क्या आप अपने कार्यों को इसके बजाय (हस्ताक्षरित) 'ssize_t' पर स्विच कर सकते हैं? –
मेरे पास 'ssize_t' नहीं है। विफलता का संकेत देने के लिए आप 'SIZE_MAX' वापस कर सकते हैं? –
'ssize_t' मानक सी नहीं है (यह POSIX है)। हालांकि, सी में 'ptrdiff_t' है। उस ने कहा, '(size_t) -1' (AFAIK) हमेशा' SIZE_MAX' होने के लिए परिभाषित किया गया है; कोई शायद '# परिभाषित LIN_SEARCH_ERR ((size_t) -1)' या इसी तरह का उपयोग कर सकता है। –