تسجيل الدخول

مشاهدة النسخة كاملة : ممكن مساعده؟؟؟؟؟؟؟!!!!!!!!!!



abo-abdalmlek
05-01-2005, 07:58 AM
السلام عليكم ورحمه الله وبر كاته

صباح الخير للكل

انا اول مشاركه لي هذي

لكن راح اطلب فيه طلب صغير

او يعني سؤال

- ماهو الفرق بين استخدام
() int main
}


;0 return
{
و
()void main
}

{

من ناحيه التحميل

والسرعه في العمل

والافضليه

والف شكر لكم

infitar
05-01-2005, 05:43 PM
the first function returns a value type of integer 32 bit and the second function returns void (nothing)

use the first one so u can return application exit code or error code...ect...

ibn_alqalam
05-01-2005, 05:45 PM
لافرق، لافي السرعة على الاقل.

الاولى هي الطيق الاصح، والثانية هي الطريقة القديمة.

هناك ايضا طريقة ثالثة، وهي لاعطا البرنامج قيما:

int main (int argc, char **argv)
{
printf ("Ismy %s.", argv[0]);

return 0;
}

فاذا ما اردت قيادة البرنامج من خلال هيكل MS DOS او Unix مثلا:

"dir/o/p" "ls -al |more" الخ، فيمكنك قراة المدخلات كالسابق.

يحتوي اول عنصر في [0]argv على اسم البنامج نفسه، حتى اذا غيرته!

من argv[1] واعلى تكمن معطياتك الى البرنامج.

جرب هذا


#include <stdio.h>
#include <stdlib.h>

int main (int argc, char **argv)
{
long val1 = 0, val2 = 0, result = 0;

if (argc != 4) {
fprintf (stderr, "usage: %s <number> <op> <number>", argv[0]);
exit(1);
}

val1 = strtol (argv[1], NULL, 10);
val2 = strtol (argv[3], NULL, 10);

if (strncmp (argv[2], "+", 1) == 0)
result = val1 + val2;
else if (strncmp (argv[2], "-", 1) == 0)
result = val1 - val2;
else {
fprintf (stderr, "operation %s should be + or -.\n",
argv[2]);
exit(1);
}
printf ("Answer = %d\n", result);

return 0;
}

هذا حاسب صغير، يدعم فقط الجمع والرح، حاول ان تفهم طريقة عمله واضف له عمليات الضرب والقسمة على الاقل