[Powered by Google Translate] CHRIS გერბერი: ფუნქცია არის მთელი რიგი ნაბიჯები ფარგლებში უფრო დიდი პროგრამა, რომელიც ჩვეულებრივ იგეგმება მოუწოდა რამდენჯერმე და მრავალჯერადი სხვა ადგილებში პროგრამა. როდესაც შექმნა C ფუნქცია, ერთი მოთხოვნები არის დააკონკრეტა დაბრუნებული მნიშვნელობა ტიპის. მარტივი საქმე სიტუაცია, სადაც მოუწოდებდა კოდი არ არის შეშფოთებული შედეგად ფუნქცია. ეს შეიძლება იყოს შემთხვევა, როდესაც ჩვენ დაბეჭდვის მონაცემების მომხმარებლის ფორუმული, როგორც printf. ამ შემთხვევაში, ჩვენ შეგვიძლია განაცხადოს დაბრუნებული მნიშვნელობა იყოს ტიპის ბათილად. გამოყენება ბათილად უბრალოდ ეუბნება შემდგენელი რომ არ ღირებულება დაუბრუნდება. ვნახოთ რა ამ ჰგავს. ვთქვათ, რომ ჩვენ გვაქვს ფუნქცია მოუწოდა say_hello რომ იღებს ერთ არგუმენტად. ჩვენ მსგავ პირის სახელი და იქნება ცარიელია მისალმებები ეკრანზე. სახელი იქნება ტიპის char *. და ჩვენ დააკონკრეტა, რომ როგორც არგუმენტი. ჩემი განაცხადი არ უნდა ვიცოდეთ, თუ რა იყო დაბეჭდილი ან თუ იგი დაიბეჭდა. ასე დაბრუნებული მნიშვნელობა იქნება ტიპის ბათილად. ეს ფუნქცია შეიძლება ბეჭდვა ეკრანი ბრძანება მოსწონს printf ("Hello,% s \ n ", სახელი);. მისალმებები იქნება ნაჩვენები და კონტროლის გადაეცემა თავში სატელეფონო კოდი. ერთი რამ აღვნიშნო, რომ როდესაც დაბრუნებული მნიშვნელობა ტიპის ბათილად, თქვენ არ გჭირდებათ მოიცავს დაბრუნების განცხადება ფუნქცია. თუ თქვენ ერთი, არ შეიცავს დაბრუნებული მნიშვნელობა როგორც არგუმენტი. ზოგიერთ შემთხვევაში, ეს აზრი დაბრუნებას მნიშვნელობა ფუნქცია. ვთქვათ, რომ ჩვენ წერილობით ფუნქცია მოუწოდა add_floats. ჩვენ გაიაროს ეს ორი არგუმენტები, როგორც მოძრავი, მოუწოდა პირველი და მეორე. იგი ჩვენ გვითხრათ რა თანხა იმ მოძრავი არის. ჩვენ ვიცით, რომ თუ დავუმატებთ ორი მოძრავი ერთად, შედეგი იქნება float. იმის გათვალისწინებით, რომ, ჩვენ აირჩიოს დაბრუნების გაცნობის float. ეს ფუნქცია შეასრულებს ამ აღრიცხვისა და დააბრუნოს ღირებულებების განაცხადი მოსწონს დაბრუნების პირველი + მეორე;. კონტროლის გავიდა თავში სატელეფონო კოდი, შედეგად ღირებულება არის ხელმისაწვდომი, რომ კოდი. ჩვენ შენახვა შეუძლია ამ მნიშვნელობის მოსწონს ასე: float შედეგი = add_floats (3,14, 1,62 );. შედეგი ამ შემთხვევაში იქნებოდა ახლა შეიცავდეს ღირებულება 4.76. შეგახსენებთ, რომ მცურავი პუნქტიანი ღირებულებები imprecise. ასე რომ, თუ ეს იყო ფინანსური გაანგარიშება, გამოყენებით დოლარი და ცენტი, ჩვენ საჭიროა ზუსტი მონაცემები ტიპის როგორიცაა int და შეასრულოს გაანგარიშება წელს pennies. კიდევ ერთი შემთხვევა, სადაც ჩვენ სურს დაბრუნების მნიშვნელობა ფუნქცია, როდესაც ჩვენ გვინდა ვიცოდეთ თუ ფუნქცია იყო წარმატებული. თუ ეს არ იყო წარმატებული, ჩვენ შეიძლება ასევე გვინდა ვიცოდეთ რა ტიპის შეცდომა. ვთქვათ, რომ ჩვენ ვცდილობთ გახსნას ფაილი დისკზე დათვლა პუნქტების სიმბოლოების იგი. თუ ფაილის გახსნა შეუძლებელია, ჩვენ გვინდა ვიყოთ შეუძლია შეწყვიტოს და ვუთხრა მომხმარებლის შესახებ პრობლემა. ჩვენ მოვუწოდებთ ჩვენი ფუნქცია count_file_chars და ის ერთ არგუმენტად. ჩვენ გაიაროს საქართველოს სახელით ფაილი გამოყენებით char * უწოდა სახელი. ეს ფუნქცია შეიძლება რაღაც მსგავსი. ამ მაგალითში, ჩვენ მოელოდა რაოდენობა დაბრუნდა იყოს 0 ან მეტი. ეს ტოვებს us უარყოფითი რიცხვებით უნდა გამოიყენოთ როგორც Sentinel ღირებულებებს. Sentinel ღირებულება უბრალოდ სპეციალური მნიშვნელობა, რომელიც არ არის ლეგიტიმური მონაცემები მაგრამ ამჯამად გადავცემთ ინფორმაციას. აქ, თუ დაბრუნების -1 to სატელეფონო კოდი, მე ვარ რეალურად გაგზავნის გაგზავნა, რომ შეცდომა ცდილობს წვდომის ფაილი. შემეძლო მაშინ გადაამოწმეთ, რომ დაბრუნებული მნიშვნელობა, რათა დადგინდეს, თუ ჩემი ფუნქციის ზარის წარმატებული იყო. თუ ნომერი იყო 0 ან მეტი, მინდა იცოდეს პუნქტების სიმბოლოების ფაილი. მაგრამ, თუ ხმების ნაკლები იყო 0, მე უბრალოდ ბეჭდვა, რომ პრობლემა მოხდა. ერთი ვაჭრობის განიხილოს არის, რომ დაჯავშნა ყველა უარყოფითი ღირებულებებს როგორც Sentinel ღირებულებებს, თუ ვთქვათ ეს 32-bit რიცხვი, მე არსებითად წაართვეს გარშემო 2 მილიარდი შესაძლო დაბრუნების ღირებულებებს. დაბრუნებული მნიშვნელობა ტიპის ერთ ერთი ყველაზე მნიშვნელოვანი ელემენტები ფუნქციის მოუწოდებს. იმედია ამ მოკლე მიმოხილვა დაეხმარა ფიქრობთ სამი ძირითადი ტიპის: ბათილად, შედეგი ღირებულებები, და Sentinel ღირებულებების, და როცა სამივე შეიძლება იყოს შესაბამისი თქვენს კოდი. მადლობა თვალს.