আমি এই প্রোগ্রামটি g ++ এবং ঝনঝন ++ দ্বারা সংকলন করি। একটি পার্থক্য রয়েছে:
জি ++ প্রিন্ট ১, তবে ঝাঁকুনি ++ প্রিন্ট ২.
মনে হয়
জি ++: বহিরাগত ভেরিয়েবলটি স্বল্পতম স্কোপে সংজ্ঞায়িত করা হয়েছে।
ঝনঝন ++: বাহ্যিক চলকটি সংক্ষিপ্ততর বিশ্ব ব্যাপ্তিতে সংজ্ঞায়িত করা হয়।
সি ++ স্পকে কি সে সম্পর্কে কোনও স্পেসিফিকেশন রয়েছে?
main.cpp
#include <iostream>
static int i;
static int *p = &i;
int main() {
int i;
{
extern int i;
i = 1;
*p = 2;
std::cout << i << std::endl;
}
}
other.cpp
int i;
সংস্করণ: জি ++: 7.4.0 / বাধা ++: 10.0.0
সংকলন: $ (সিএক্সএক্স) মেইন সিপ্পি অন্য সিপিপি-বহিরাগত.এক্সে
MSVC
এবং clang-cl
(উভয়ই দেওয়া 2
) দিয়ে খেলে , মনে হয় এটি extern int i
উভয় দ্বারা সম্পূর্ণ উপেক্ষা করা হয়েছে: আমি যদি other.cpp
ফাইলে লিঙ্ক না করি তবে প্রোগ্রামটি তৈরি করে এবং চালিত হয়।
i
নেই, এটি চেষ্টা করে না।