ใน C ++ 11 คุณสามารถประกาศตัวแปรส่วนกลางและฟังก์ชันต้นแบบในบรรทัดเดียวกันได้หรือไม่
ในขณะที่ฉันเขียนโค้ด C ++ 11:
#include <bits/stdc++.h>
using namespace std;
int a, b, array[25];
int function();
int main() {
... (not important)
ด้วยความอยากรู้อยากเห็นฉันวางการประกาศตัวแปรไว้ในบรรทัดเดียวกับต้นแบบฟังก์ชัน:
#include <bits/stdc++.h>
using namespace std;
int function(), a, b, array[25];
int main() {
... (not important)
คอมไพล์อย่างถูกต้องบน XCode (ตั้งค่าเป็น [-std = c ++ 11]) และa, b, array[]
สามารถใช้งานได้เหมือนตัวแปร / อาร์เรย์ปกติ
สิ่งนี้จะใช้ได้กับคอมไพเลอร์ส่วนใหญ่ / ทั้งหมดหรือไม่และสิ่งนี้ท้อใจ / ดีหรือไม่? เหตุใดสิ่งนี้จึงทำงานใน C ++ (ต้นแบบฟังก์ชันและการประกาศตัวแปรดูเหมือนแตกต่างกันมาก ... )
ขอขอบคุณล่วงหน้าสำหรับเวลาของคุณ
คำตอบ
ประกาศบอกว่าfunction(x)
, a
, b
และarray[i]
มีทั้งหมดint
s
(นี่คือประเภท "การอ่านแบบเก่า" - มันใช้ได้เสมอในภาษา C แต่ C ++ พังint *x
สามารถอ่านได้ " *x
เป็นint
" แต่int &x
ไม่สามารถอ่านได้ " &x
เป็นint
")
สิ่งนี้ใช้ได้ดีมาตั้งแต่ยุคแรก ๆ ของ C (ประมาณครึ่งศตวรรษหรือมากกว่านั้น) และไม่ จำกัด เฉพาะการประกาศทั่วโลก
นอกจากนี้ยังสับสนมากและคุณจะไม่พบหลายคนที่คิดว่าเป็นความคิดที่ดี
ตอนนี้คนส่วนใหญ่ยอมแพ้กับการประกาศตัวแปรมากกว่าหนึ่งตัวในหนึ่งบรรทัด
โปรแกรมเริ่มต้นอ่านได้น้อยลงง่ายต่อการลืมและหน้าจอสามารถแสดงหลายบรรทัดพร้อมกันในปัจจุบัน