1. 程式人生 > >Objective-C學習筆記(十三)——函式的宣告與呼叫

Objective-C學習筆記(十三)——函式的宣告與呼叫

       OC中的函式語法也同樣與C類似。需要宣告,呼叫等等。具體實現看一下程式碼:

(一)程式碼一:

int area(int x,int y);//在此處宣告函式;

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        int a=3;
        int b=4;
        int rect_area = area(a,b);//呼叫函式,此時的a,b是實參;
        NSLog(@"矩形的面積為:%d",rect_area);
        
    }
    return 0;
}

//該函式用來計算矩形的面積,長乘以寬
int area(int x,int y){//這裡的x,y是形參;

    return x*y;
}

輸出結果:

結果分析:函式在定義之前需要先進行宣告,宣告只要寫出函式的名稱和引數即可,並加上分號,不需要函式體。在OC中不進行宣告也可以,不會報錯,但是會有以下警告:Implicit declaration of function "area" is invalid in C99.但是在C99這種C語言標準中是非法的。我們最好進行函式宣告。還有一個解決方案就是把自定義函式放在main函式之前,這樣就不需要聲明瞭。

(二)程式碼二:

#import <Foundation/Foundation.h>

void area(int x,int y);//在此處宣告函式;

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        int a=3;
        int b=4;
        area(a,b);
        
    }
    return 0;
}

//該函式用來計算矩形的面積,長乘以寬
void area(int x,int y){//這裡的x,y是形參;

    NSLog(@"矩形的面積為:%d",x*y);
}

輸出結果:

結果分析:函式也是可以沒有返回值的,即返回型別為void。輸出的內容也可以直接放在自定義的函式中。

相關推薦

Objective-C學習筆記十三——函式宣告呼叫

       OC中的函式語法也同樣與C類似。需要宣告,呼叫等等。具體實現看一下程式碼:(一)程式碼一:int area(int x,int y);//在此處宣告函式; int main(int argc, const char * argv[]) { @autor

北京大學MOOC C++學習筆記函式模板和類模板

函式模板: 交換兩個整型變數的值的Swap函式: void Swap(int & x,int & y) {     int tmp = x;     x = y;     y = tmp; } 交換兩個double型變數的值的Swap函式: void Swa

Objective-C學習筆記——OC實現最簡單的數學運算

      本篇帖子會實現使用OC的最簡單的加減乘除運算,學習的知識點包括變數定義,運算方法,格式化輸出等概念。主要學習基本的語法,其實和C語言的語法還是比較類似的。具體程式碼只要寫在main方法中就行了。詳細程式碼如下:#import <Foundation/Foun

C++學習筆記--函式引數,陣列函式,指標和const,二維陣列函式,遞迴,函式指標

C++ Primer Plus學習筆記之三 每一塊寫了一個詳細闡釋的demo,具體使用方法以及注意事項在程式碼裡都有備註 第七章函式--C++的模組程式設計,總計分為以下幾塊-- 函式引數

Objective-C學習筆記——迴圈語句for和do-while的使用

      在OC中,除了while這種迴圈方式外,還有另外for迴圈和do-while迴圈,它們在不同的業務邏輯下會有不同的作用。可以和C語言和Java對比著學習。(一)程式碼一:int main(int argc, const char * argv[]) { @

C#學習筆記5-值型別引用型別

值型別 值型別的值存在棧上 int double char decimal bool enum struct 引用型別 引用型別存在堆上 - string - 陣列 - 自定義類 - 集合 - object - 介面

C#學習筆記6-序列化反序列化

序列化 就是將物件轉換為二進位制 反序列化 就是將二進位制轉換為物件 作用 傳輸資料。資料在網路中是以二進位制形式傳輸的。 序列化的類不能被繼承 關鍵字 [Serializable]:定義一個類可被序列化 [Serializable]

c++ primer第五版----學習筆記十三

知識點: 拷貝控制操作:拷貝、移動、賦值和銷燬 在定義一個類時,我們可以顯式或隱式的定義在此型別的物件拷貝、賦值、移動、銷燬是做什麼,主要通過五種特殊的成員函式來完成這些操作:拷貝建構函式、拷貝複製運算子、移動建構函式、移動複製運算子和解構函式 1.拷貝建構函式: 定

北京大學MOOC C++學習筆記虛擬函式和多型

虛擬函式: 在類的定義中,前面有 virtual 關鍵字的成員函式就是虛擬函式。 class base { virtual int get() ; }; int base::get() { } virtual 關鍵字只用在類定義裡的函式宣告中,寫函式體時不用。 多型的表現

C++學習筆記--操作符過載 友元函式 類的繼承 訪問控釋protected

C++ Primer Plus的閱讀大概到這邊也就先暫時告一段落了(因為開學了!!) 然後近期找來了C++ Primer稍微翻了翻覺得確實寫得比Plus要好一些,而且加入了C++11的新特性,但是無論哪本書對於這些最基本的功能應用大抵也是差不多的,所以也沒覺得看的是Plu

C++學習筆記10運算子過載,友元函式,友元類

c++允許我們為運算子定義專門的函式,這被稱為運算子過載: 運算子可以簡化字串的操作,‘+’,以及使用關係運算符比較字串,[ ]運算子訪問向量中的元素; 例如: #include <iostream> #include <string> #include <

C語言學習筆記—— 函式、遞迴和指標

一、函式1、一個簡單的函式示例函式是完成特定任務的獨立程式程式碼單元。#include <stdio.h> void printStar();//宣告函式原型,函式原型會指明函式的型別和函式接受的引數。前面的void是函式型別,表明函式沒有返回值 #define

C#學習筆記7——委托

() namespace test task cnblogs [] string 命名空間 program 說明(2017-5-29 22:22:50): 1. 語法:public delegate void mydel();這一句在類外面,命名空間裏面。 2. 專門新建一

C#學習筆記12——三種方法操作XML

結點 記得 ext 應用程序 eval 資源 特性 pla cells 說明(2017-7-11 16:56:13): 原文地址: C#中常用的幾種讀取XML文件的方法 XML文件是一種常用的文件格式,例如WinForm裏面的app.config以及Web程序中的web.c

如鵬網學習筆記十三EasyUI

bar -h 學習筆記 val datagrid center sheet 手機號 cti 一、EasyUI簡介   是一組基於JQuery的UI插件集合   主要作用:為JQuery對象提供新的方法,實現新的功能   可以快速創建出簡潔、友好、美觀的頁面,非常適合做

Python學習筆記十三

應該 成功 緩存 with open 文件 學習 編碼 打開 gbk 一、讀文件   file = open("文件路徑名","讀寫模式") # r :讀模式 、w :寫模式、a :追加模式   如果文件存在,則打開文件成功,如果文件不存在,則打開錯誤,會拋出一個IOEr

R語言學習筆記十三:時間序列

abs 以及 stat max 時間 aic air ror imp #生成時間序列對象 sales<-c(18,33,41,7,34,35,24,25,24,21,25,20,22,31,40,29,25,21,22,54,31,25,26,35) tsal

學習筆記十三——數據庫備份還原的知識點註意事項

差異 並且 rom esc 每次 sel exe tor 參數 學習筆記(十三)——數據庫備份還原的知識點與註意事項 一、備份還原基本概念 1、 完整備份:完整備份因為需要備份的數據量大,所以需要在空閑時間進行,並且定期進行。 2、

c++學習筆記- lambda表達式 叠代器 算法

tex 參數 p s 刷題 algo 叠代器 裏的 blog 而且 關於lambda表達式: 刷題的時候遇到一句代碼不懂: char ch = *it;auto it2 = find_if(it, b.end(), [ch](char x){ return x != ch

day6-Python學習筆記十三redis數據庫

測試的 針對 def 時間 執行 原來 導入 style __main__ import redisr = redis.Redis(host=‘211.149.218.16‘,port=6379,password=‘123456‘,db=2)#連上redisprint(r.