لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
اين كد يعني چي؟
2010-03-09, 03:39 PM,
ارسال : #1
اين كد يعني چي؟
کد :
int (*AdhocTest)(int argc, char *argv[]) = NULL;

اين كد رو تاحالا نديده بودم و جايي توي رفرنس هم نبوده.
سرچ هم ميكنم چيزي پيدا نميكنم كه توضيح داده باشه.
يعني چي اين كد؟ چيكار ميكنه؟
مثلا انتهاي يك برنامه در اين صفحه آمده:
<!-- m --><a class="postlink" href="http://www.codeguru.com/cpp/misc/misc/cryptoapi/article.php/c11953/">http://www.codeguru.com/cpp/misc/misc/c ... hp/c11953/</a><!-- m -->
نقل قول این ارسال در یک پاسخ
2010-03-09, 04:26 PM,
ارسال : #2
پاسخ: اين كد يعني چي؟
این کد یک اشاره‌گر به تابعی با خروجی int و پارامترهای int و argv** است و نام این اشاره‌گر AdhocTest در نظر گفته شده و مقدار NULL به آن داده شده است (یعنی یک اشاره‌گری که آدرس هیچ تابعی در آن ذخیره نشده است).

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-09, 06:13 PM,
ارسال : #3
پاسخ: اين كد يعني چي؟
بله اینو که میتونم بفهمم. اینقدر وارد هستم.
اما خب این کد در انتهای برنامه چکار میکنه؟!
نقل قول این ارسال در یک پاسخ
2010-03-09, 11:18 PM,
ارسال : #4
پاسخ: اين كد يعني چي؟
در مورد Ad hoc testing این مقاله از ویکی‌پدیا رو بخونید:
<!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/Ad_hoc_testing">http://en.wikipedia.org/wiki/Ad_hoc_testing</a><!-- m -->

برنامه‌نویس احتمالا برای تست‌‌کردن کدش یک Ad hoc test به برنامه اضافه کرده بوده و در نهایت که برنامه به سلامتی و میمنت اجرا شده Ad hoc test را NULL گذاشته.

یک برنامه‌ی کامل‌تر را در اینجا ببینید که چطوری Ad hoc test انجام می‌شود.
<!-- m --><a class="postlink" href="http://www.cryptopp.com/docs/ref/test_8cpp-source.html">http://www.cryptopp.com/docs/ref/test_8cpp-source.html</a><!-- m -->

کد :
00095 int (*AdhocTest)(int argc, char *argv[]) = NULL;
...
00091 int CRYPTOPP_CDECL main(int argc, char *argv[])
...
00324                 else if (command == "a")
00325                 {
00326                         if (AdhocTest)
00327                                 return (*AdhocTest)(argc, argv);
00328                         else
00329                         {
00330                                 cerr << "AdhocTest not defined.\n";
00331                                 return 1;
00332                         }
00333                 }

و یک کاربرد آن را در این کد ببینید:
<!-- m --><a class="postlink" href="http://www.cryptopp.com/docs/ref54/fipsalgt_8cpp-source.html">http://www.cryptopp.com/docs/ref54/fips ... ource.html</a><!-- m -->

کد :
01209 int FIPS_140_AlgorithmTest(int argc, char **argv)
01210 {
...
01288 }
01289
01290 extern int (*AdhocTest)(int argc, char *argv[]);
01291 static int s_i = (AdhocTest = &FIPS_140_AlgorithmTest, 0);
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2010-03-10, 08:01 PM,
ارسال : #5
پاسخ: اين كد يعني چي؟
خیلی ممنون. من فکر کردم این یک مقولهء مهم و متداولی هست که تاحالا بهش برنخوردم و ازش خبر ندارم. از طرف دیگه در سرچ گوگل هم چیزی پیدا نمیشد جز کدهای مشابه.


Only God

I Wish I Was Buddha
کاش بودا بودم

Live And Let Live
زندگی کن و بگذار زندگی کنند

Forgive And Be Forgiven
ببخش و بخشیده شو

مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان