Latest web development tutorials
×

C หลักสูตร

C กวดวิชาภาษา C แนะนำโดยย่อ C การตั้งค่าสภาพแวดล้อม C โครงสร้างหลักสูตร C ไวยากรณ์พื้นฐาน C ชนิดข้อมูล C ตัวแปร C คงที่ C ประเภทการจัดเก็บ C ผู้ประกอบการ C ผู้พิพากษา C การไหลเวียน C ฟังก์ชัน C การกำหนดขอบเขตกฎระเบียบ C แถว C ชี้ C เชือก C โครงสร้าง C สหภาพ C ฟิลด์บิต C typedef C อินพุตและเอาต์พุต C การอ่านออกเขียนเอกสาร C preprocessor C ส่วนหัว C ปลดเปลื้อง C จัดการข้อผิดพลาด C recursion C พารามิเตอร์ตัวแปร C จัดการหน่วยความจำ C บรรทัดคำสั่ง C คลาสสิก 100 ราย

C ห้องสมุดมาตรฐาน

C ห้องสมุดมาตรฐาน - คู่มืออ้างอิง C ห้องสมุดมาตรฐาน - <assert.h> C ห้องสมุดมาตรฐาน - <ctype.h> C ห้องสมุดมาตรฐาน - <errno.h> C ห้องสมุดมาตรฐาน - <float.h> C ห้องสมุดมาตรฐาน - <limits.h> C ห้องสมุดมาตรฐาน - <locale.h> C ห้องสมุดมาตรฐาน - <math.h> C ห้องสมุดมาตรฐาน - <setjmp.h> C ห้องสมุดมาตรฐาน - <signal.h> C ห้องสมุดมาตรฐาน - <stdarg.h> C ห้องสมุดมาตรฐาน - <stddef.h> C ห้องสมุดมาตรฐาน - <stdio.h> C ห้องสมุดมาตรฐาน - <stdlib.h> C ห้องสมุดมาตรฐาน - <string.h> C ห้องสมุดมาตรฐาน - <time.h>

C แมโครห้องสมุด - setjmp ()

C ห้องสมุดมาตรฐาน - <setjmp.h> C ห้องสมุดมาตรฐาน - <setjmp.h>

ลักษณะ

Csetjmp ห้องสมุดมาโคร int (สภาพแวดล้อม jmp_buf)เก็บไว้ในสภาพแวดล้อมสภาพแวดล้อมในปัจจุบันตัวแปรในการทำงานlongjmp ()เพื่อใช้ในภายหลัง หากผลตอบแทนแมโครนี้โดยตรงจากโทรมาโครก็จะส่งกลับศูนย์ แต่ถ้ามันกลับมาจากlongjmp โทร ()ฟังก์ชั่นก็จะส่งกลับ longjmp ผ่านเป็นอาร์กิวเมนต์ที่สองของค่าไม่ใช่ศูนย์

คำแถลง

นี่คือ setjmp () คำสั่งแมโคร

int setjmp(jmp_buf environment)

พารามิเตอร์

  • สภาพแวดล้อม - นี้เป็นวัตถุที่ใช้ในการเก็บข้อมูลสภาพแวดล้อมประเภท jmp_buf

ราคาย้อนกลับ

แมโครนี้อาจจะกลับมามากกว่าหนึ่งครั้ง เป็นครั้งแรกในโดยตรงเรียกมันก็มักจะส่งกลับค่าศูนย์ กับข้อมูลด้านสิ่งแวดล้อมให้ไว้เมื่อคุณเรียก longjmp แมโครนี้จะกลับมาอีกครั้งที่จุดก็จะส่งกลับค่าที่จะได้รับการส่งผ่านเป็นอาร์กิวเมนต์ที่สองเพื่อ longjmp

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงให้เห็นถึง setjmp () ที่ใช้งานแมโคร

#include <stdio.h>
#include <stdlib.h>
#include <setjmp.h>

int main()
{
   int val;
   jmp_buf env_buffer;

   /* 保存 longjmp 的调用环境 */
   val = setjmp( env_buffer );
   if( val != 0 ) 
   {
      printf("从 longjmp() 返回值 = %s\n", val);
      exit(0);
   }
   printf("跳转函数调用\n");
   jmpfunction( env_buffer );
   
   return(0);
}

void jmpfunction(jmp_buf env_buf)
{
   longjmp(env_buf, "w3cschool.cc");
}

Let 's รวบรวมและเรียกใช้โปรแกรมข้างต้นซึ่งจะส่งผลต่อไปนี้:

跳转函数调用
从 longjmp() 返回值 = w3cschool.cc

C ห้องสมุดมาตรฐาน - <setjmp.h> C ห้องสมุดมาตรฐาน - <setjmp.h>