อ่าน 2 นาที
ฟังก์ชันการแปลตำแหน่ง C
ในด้านการ คำนวณ ฟังก์ชันการแปล C เป็นกลุ่มฟังก์ชันใน ภาษาการเขียนโปรแกรม C ที่ใช้รูทีนการแปลพื้นฐาน [ 1 ] [ 2 ]...
ฟังก์ชันการแปลตำแหน่ง C
| ไลบรารีมาตรฐาน C (libc) |
|---|
| หัวข้อทั่วไป |
| ส่วนหัวเบ็ดเตล็ด |
ในด้านการคำนวณฟังก์ชันการแปล Cเป็นกลุ่มฟังก์ชันในภาษาการเขียนโปรแกรม Cที่ใช้รูทีนการแปลพื้นฐาน[ 1 ] [ 2 ]ฟังก์ชันเหล่านี้ใช้ในโปรแกรมหลายภาษาเพื่อปรับให้เข้ากับภาษาท้องถิ่นเฉพาะ โดยเฉพาะอย่างยิ่ง วิธีการแสดงตัวเลขและสกุลเงินสามารถแก้ไขได้ การตั้งค่าเหล่านี้ส่งผลต่อพฤติกรรมของฟังก์ชันอินพุต/เอาต์พุตในไลบรารีมาตรฐาน C [ 3 ]
ภาพรวมของฟังก์ชันต่างๆ
ฟังก์ชันและประเภทการแปล C ถูกกำหนดไว้ในlocale.h ( ส่วนหัว clocaleใน C++) [ 4 ] [ 5 ]
| การทำงาน | คำอธิบาย |
|---|---|
| ตั้งค่าโลคัล | ตั้งค่าและดึงค่าภาษา C ปัจจุบัน |
| โลคัลคอนฟ | ส่งคืนรายละเอียดการจัดรูปแบบตัวเลขและสกุลเงินของภาษาท้องถิ่นปัจจุบัน |
การวิจารณ์
สถานะการแปลจะถูกจัดเก็บไว้ทั่วโลก ซึ่งหมายความว่าในโปรแกรมที่กำหนด การดำเนินการทั้งหมดที่เกี่ยวข้องกับภาษาท้องถิ่นสามารถใช้ภาษาท้องถิ่นได้เพียงภาษาเดียวในแต่ละครั้ง ส่งผลให้การใช้งานโปรแกรมที่ใช้ภาษาท้องถิ่นมากกว่าหนึ่งภาษาเป็นเรื่องยากมาก[ 6 ]
ฟังก์ชันเหล่านี้จะเปลี่ยนแปลงพฤติกรรมของprintf , scanf , strtodและฟังก์ชันอื่นๆ ที่มักใช้ในการเขียนข้อมูลที่บันทึกไว้ลงในไฟล์หรือโปรแกรมอื่นๆ ผลที่ได้คือ ไฟล์ที่บันทึกไว้ในภาษาท้องถิ่นหนึ่งจะไม่สามารถอ่านได้ในภาษาท้องถิ่นอื่น หรืออาจอ่านไม่ได้เลยเนื่องจากข้อสมมติฐานต่างๆ เช่น "ตัวเลขไม่มีเครื่องหมายจุลภาค" ซอฟต์แวร์ขนาดใหญ่ส่วนใหญ่จึงบังคับให้ภาษาท้องถิ่นเป็น "C" (หรือค่าคงที่อื่นๆ) เพื่อแก้ไขปัญหาเหล่านี้
ตัวอย่าง
#include <locale.h> #include <stdio.h> #include <stdlib.h>int main ( void ) { /* ก่อนหน้านี้มีการตั้งค่าโลเคลเป็น "C" การเรียกนี้จะตั้งค่า ให้เป็น "โลเคลปัจจุบัน" โดยการอ่านตัวแปรสภาพแวดล้อม: */ setlocale ( LC_ALL , "" );const struct lconv * const currentlocale = localeconv ();printf ( "ในภาษาท้องถิ่นปัจจุบัน สัญลักษณ์สกุลเงินเริ่มต้นคือ: %s \n " , currentlocale -> currency_symbol );คืนค่าEXIT_SUCCESS ; }ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ฟังก์ชันการแปลตำแหน่ง C
ในด้านการ คำนวณ ฟังก์ชันการแปล C เป็นกลุ่มฟังก์ชันใน ภาษาการเขียนโปรแกรม C ที่ใช้รูทีนการแปลพื้นฐาน [ 1 ] [ 2 ]...
ภาพรวมของฟังก์ชันต่างๆ
ฟังก์ชันและประเภทการแปล C ถูกกำหนดไว้ใน locale.h ( ส่วนหัว clocale ใน C++) [ 4 ] [ 5 ]
การวิจารณ์
สถานะการแปลจะถูกจัดเก็บไว้ทั่วโลก ซึ่งหมายความว่าในโปรแกรมที่กำหนด การดำเนินการทั้งหมดที่เกี่ยวข้องกับภาษาท้องถิ่นสามารถใช้ภาษาท้องถิ่นได้เพียงภาษาเดียวในแต่ละครั้ง ส่งผลให้การใช้งานโปรแกรมที่ใช้ภาษาท้องถิ่นมากกว่าหนึ่งภาษาเป็นเรื่องยากมาก [ 6 ]
ตัวอย่าง
#include #include #include int main ( void ) { /* ก่อนหน้านี้มีการตั้งค่าโลเคลเป็น "C" การเรียกนี้จะตั้งค่า ให้เป็น "โลเคลปัจจุบัน" โดยการอ่านตัวแปรสภาพแวดล้อม: */ setlocale ( LC_ALL , "" ); const struct lconv * const currentlocale = localeconv (); printf (...