שאלה שנשאלתי...

שאלה שנשאלתי...

יש לי את הקוד הבא: void main () { printf("First\n"); Delay (5, "Third\n"); printf("Second\n"); } (הכיתוב יוצא קצת מעוות, אבל הרעיון אמור להיות ברור: מדפיסים First, אז נקראת פונקציה Delay שאותה אמורים לממש, ואמורה להדפיס למסך את Third, ולבסוף יש שורת הדפסה ל-Second). הפלט של התוכנית אמור להיות: First Second Third האם למישהו יש רעיון איך לממש את Delay בצורה פשוטה? בתודה מראש.
 

inbal76

New member
בשביל שהפלט יהיה כזה

הפונקציה Delay צריכה להריץ ת'רד נפרד.
 
שתי שאלות בעניין...

1. האם את יכולה לחשוב על דרך ללא thread נפרד? (גם אני יכול לחשוב רק על thread נפרד, ותהיתי אם אני מקובע). 2. את יכולה לתת לי דוגמא (אפילו בפסאודו-קוד) של מה שהיית עושה? (אני כתבתי משהו מצ'וקמק שעובד, אבל לא מתאים לי לכל הדרישות). סתם סקרן לראות אם אני בכיוון, בלי להתעמק בדרישות. בתודה מראש.
 

inbal76

New member
אפשר בהתחכמות...

#include <stdio.h> #include <string.h> char g_Str[32] = {'\0'}; void Delay(int num, char *str) { strcpy(g_Str, str); } #define printf(x) { printf(x); if('\0' != g_Str[0]) printf("%s\n",g_Str);} int main () { printf("First\n"); Delay(5,"Third\n"); printf("Second\n"); return 1; } כמובן שאפשר ליפות את זה קצת...​
 
למעלה