1. 程式人生 > 程式設計 >JavaScript的三座大山之單執行緒和非同步

JavaScript的三座大山之單執行緒和非同步

  在有些C語言程式中,我們會看到main函式有如下的寫法:

int main(int argc, char* argv[]);

  或者是這樣的:

int main(int argc, char** argv);

  給main傳參通過argc和argv這兩個引數來實現。執行程式時,可以從命令列傳值給 C 程式。這些值被稱為命令列引數,它們對程式很重要,特別是當您想從外部控制程式,而不是在程式碼內對這些值進行硬編碼時,就顯得尤為重要了。

  命令列引數是使用 main() 函式引數來處理的,其中,argc是指傳入引數的個數,argv[ ]是一個字元指標陣列,指向傳遞給程式的每個引數。

下面是一個通過指定命令列引數實現簡單計算器的程式

#include <string.h>

int Add(int, int);
int Sub(int, int);
int Mul(int, int);
int Div(int, int);

int main(int argc, char* argv[])
{
    if(argc != 4)
    {
        printf("Parameters should be 4.\n");
        return -1;
    }
    
    int param1 = atoi(argv[1]);
    
int param3 = atoi(argv[3]); if(!strcmp(argv[2], "+")) { printf("%s %s %s = %d\n", argv[1], argv[2], argv[3], Add(param1, param3)); } else if(!strcmp(argv[2], "-")) { printf("%s %s %s = %d\n", argv[1], argv[2], argv[3], Sub(param1, param3)); } else if(!strcmp(argv[2
], "*")) { printf("%s %s %s = %d\n", argv[1], argv[2], argv[3], Mul(param1, param3)); } else if(!strcmp(argv[2], "/")) { printf("%s %s %s = %d\n", argv[1], argv[2], argv[3], Div(param1, param3)); } else { printf("Parameters fault.");
     return -1; }
return 0; } int Add(int a, int b) { return a + b; } int Sub(int a, int b) { return a - b; } int Mul(int a, int b) { return a * b; } int Div(int a, int b) { return a / b; }

  其中C 庫函式int atoi(const char *str)把引數str所指向的字串轉換為一個整數(型別為 int 型)。由於命令列引數都是字元指標型別,想要對引數進行數學運算,必須把字串轉成int型別。

編譯執行如下:

  可以看到,通過給定不同的命令列引數,在同一個程式中可以實現不同的功能。

新人才疏學淺,有錯的地方敬請指正!!

本文來自部落格園,作者:夏末終年,轉載請註明出處:https://www.cnblogs.com/xiamozhongnian/p/15869439.html