ในปัญหานี้ เราจะเรียนรู้เกี่ยวกับมาตรฐานที่กำหนดไว้ในภาษาซี นี่เป็นวิธีมาตรฐานในการคอมไพล์โปรแกรมในอุดมคติโดยคอมไพเลอร์ตามที่กำหนดโดยชุมชนการพัฒนา
เพื่อให้เข้าใจสิ่งที่ฉันพูด ให้ดูตัวอย่างง่ายๆ ของโปรแกรม C ทั่วไปที่ทุกคนต้องเคยพบเจอและเห็นว่าปัญหากำลังจะเกิดขึ้นแต่ไม่ได้เจาะลึกลงไปในนั้น
ประเภทการคืนค่าเป็นโมฆะของฟังก์ชัน main() -
ดูโปรแกรมต่อไปนี้ −
void main() { //program code }
โปรแกรมนี้จะทำงานได้ตามปกติหากเราใช้คอมไพเลอร์ turbo c แต่คอมไพเลอร์ตัวอื่นมีข้อผิดพลาดที่ main ไม่สามารถเป็นโมฆะได้ ดังนั้นอันไหนที่ถูกต้อง? คำตอบมีระบุไว้ในมาตรฐาน
มาตรฐานภาษาซีคืออะไร
เป็นวิธีมาตรฐานที่กำหนดไว้สำหรับผู้สร้างคอมไพเลอร์เกี่ยวกับการคอมไพล์โค้ด มาตรฐาน C ล่าสุดเปิดตัวในเดือนมิถุนายน 2018 ซึ่งก็คือ ISO/IEC 9899:2018 หรือที่เรียกว่า C11
มาตรฐานภาษาซีนี้กำหนดพฤติกรรมของโปรแกรม เช่น โปรแกรมจะทำงานอย่างไรในอุดมคติ? อะไรคือวิธีที่ถูกต้องและคำจำกัดความของฟังก์ชันในตัวบางฟังก์ชัน
มาดูตัวอย่างของ main() วิธีมาตรฐานในการประกาศฟังก์ชัน main() ตามภาพที่มี 0 หรือ 2 พารามิเตอร์และประเภทการส่งคืน int
ไวยากรณ์
// No parameter int main() { /* code */ } // Two parameter int main(int argc, char *argv[]) { /* code */ }
มีมาตรฐานอีกมากมายในการเขียนโปรแกรมที่อาจละเมิดโดยคอมไพเลอร์บางตัว