- 论坛徽章:
- 0
|
各位, 以下是小弟一個程序返回的構思, 請各位指教.
代碼:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- static void check2(char string[])
- {
- int result = 0;
- if(strcmp(string, "happy") == 0)
- result = 1;
- else
- result = 0;
- if(result)
- printf("OK!\n");
- else
- return;
- }
- static int check(char string[])
- {
- if(strcmp(string, "happy") == 0)
- return (1);
- else
- return (-1);
- }
- static void one(void)
- {
- char abc[10] = "unhappy";
- if(abc != NULL)
- {
- if(check(abc))
- {
- check2(abc);
- }
- }else
- return;
- }
- int main(void)
- {
- while(1)
- {
- one();
- }
- return 0;
- }
复制代码
程序構思是這樣的, 這裡有三個function, 分別為 one, check, check2, one 是檢查字串是否空的, 若否進入check, 檢查字串是否相同, 返回值1及-1即true及false. 若true(1)再進入check2作第二次的檢查, 再次得出result值為1或-1. 當1時, 顯示ok, 當-1時return. 而我所發問的問題就在這, 當return是,它是會返回check. 有沒有方法當result為-1時立刻返回main呢... 這就是我要向你們請教的問題了. 在我真實的程序內, 會進入了二層function, 而用return時只會返回上一層function. 程序往往就在這當false時返回出現Segmentation fault.
謝謝各位指教.
[ 本帖最后由 惠繪洋 于 2005-12-6 16:40 编辑 ] |
|