আমি কি সি / সি ++ শব্দটি ব্যবহার করা বন্ধ করব?


140

আমি বুঝতে পারি সি এবং সি ++ আলাদা আলাদা ভাষা কিন্তু যখন আমি সি ++ শিখছিলাম তখন আমাকে সর্বদা বলা হয়েছিল যে সি সি ++ এর একটি উপসেট বা ক্লাস সহ সি ++ সি। এবং সি ++ x0, সি ++ 11 (বা সাধারণ সি ++ 11/14/17 সাধারণভাবে) উপস্থিত হওয়া অবধি এটি বেশ সত্য ছিল। প্রকৃতপক্ষে (বিশেষত এমবেড হওয়া সিস্টেমগুলিতে কাজ করার সময়) এটি সি ++ তে লিখিত কোড খুঁজে পাওয়ার সম্ভাবনা রয়েছে তবে খালি সি ভাষায় পুরোপুরি অনেকগুলি অংশ লিখিত রয়েছে। এখানে আমার বেশ কয়েকটি প্রশ্ন রয়েছে:

  1. আমি কি সি / সি ++ শব্দটি ব্যবহার করা বন্ধ করব?
  2. যদি # 1 এর উত্তর হ্যাঁ হয় তবে আমি এমন একটি প্রোগ্রামকে কীভাবে কল করব যেখানে সি এবং সি ++ এর মিশ্রণ ব্যবহার করা হবে?
  3. উভয়টিই 'আলাদা' ভাষা বলে মনে করা যায় যে কোনও সময়ে সি ++ সংকলক সি ভাষায় লিখিত সমর্থন কোডটি বন্ধ করে দেয় (যেহেতু আধুনিক সি ++ পয়েন্টার, গতিশীল মেমোরি হ্যান্ডলিং ইত্যাদির মতো বেসিক স্টাফগুলির জন্য সি মানসিকতা থেকে সরে যায়)
  4. সামঞ্জস্যতা বজায় রাখতে সি / সি ++ এর মান তৈরি করে এমন লোকদের মধ্যে এখনই কি কোনও সহযোগিতা রয়েছে?
  5. যদি # 4 হ্যাঁ হয়, আধুনিক সি ++ (11/14/17) এর উপস্থিতির সাথে এই জাতীয় সহযোগিতা অদূর ভবিষ্যতে শেষ হতে পারে

আমি জানি যে ইতিমধ্যে অনুরূপ প্রশ্ন রয়েছে, তবে আমি নিশ্চিত যে প্রচুর লোক এই প্রশ্নগুলি ভাগ করে নেয় তাই আমি খুব ভাল উত্তর পেতে আগ্রহী বিশেষত যে পয়েন্টগুলি নিকট ভবিষ্যতে সি ++ প্রবণতার সাথে করা উচিত for


35
এবং সি ++ x0, সি ++ ১১ নম্বর উপস্থিত না হওয়া পর্যন্ত এটি সত্য ছিল, সি 98 সি ++ 98 এর উপসেট নয়।

35
Should I stop using the term C/C++। হ্যাঁ. এটি কেবল নিয়োগকারী এবং এইচআর দ্বারা ব্যবহৃত হয়। প্রকৌশলীরা এই শব্দটি Cবা C++স্বাধীন ভাষা হিসাবে ব্যবহার করবেন । আপনি যদি এমন কোনও ইঞ্জিনিয়ার খুঁজে পান যা এই শব্দটির সাথে মিশে তবে সেগুলি এড়িয়ে চলুন।
মার্টিন ইয়র্ক

8
@ লোকীআস্টারি: সত্যি? আমার ধারণা এসকিউএলাইট বিকাশকারীরা এইচআর, কারণ তাদের খোলা অবস্থান নেই। এটি একটি অবিশ্বাস্যরকম সীমাবদ্ধ দৃষ্টিভঙ্গি (দয়া করে আপনার উত্তরটিকে অন্যদের মতো করে যান এবং আমার উত্তরকে নীচে নামান)।

4
@ গ্রেফ্যাড: এটি ধারণা করা খারাপ যে, যে কোনও জায়গায় যে কোনও জায়গায় যে কোনও চরিত্রের দেখা যায় এমন ক্রম দাবি করা যায়। "সি / সি ++" নির্দিষ্ট ভাষার জন্য বেছে নেওয়া নাম হতে পারে, তবে এর অর্থ এই নয় যে "সি / সি ++" ব্যবহারটি সেই ভাষাটিকে বোঝায়, যদি আমি সেই ওয়েবসাইটটি অনুলিপি করে "সি / সি ++" প্রতিস্থাপন করি তবে "C ++ 1z" যে খসড়া সি ++ স্ট্যান্ডার্ডের সমস্ত আলোচনা হঠাৎ করে ভুল পরিভাষা ব্যবহার করবে। সহজ কথায় বলতে গেলে, "C / C ++" স্ট্রিংটি কখনই "সি / সি ++" নামক রসিক ভাষার উল্লেখ করে নি এবং কখনই করবে না।
বেন ভয়েগট

32
@ টমডওয়ারজানস্কি, স্ট্রোস্ট্রপ. com/ bs_faq.html #C-is- subset "কঠোর গাণিতিক দিক থেকে সি সি ++ এর একটি উপসেট নয় ... তবে, সি ++ সি দ্বারা সমর্থিত প্রতিটি প্রোগ্রামিং কৌশল সমর্থন করে ... এটি নয় কয়েক ঘন্টার মধ্যে কয়েক হাজার লাইনের সি-স্টাইল সি ++ তে রূপান্তর করতে সক্ষম হওয়া অস্বাভাবিক বিষয় Thus সুতরাং, সি ++ এএনএসআই সি-র ততটাই সুপারস্টেট যেমন এএনএসআই সি কেএন্ডআর সি এর সুপারসেট এবং আইএসও সি ++ একটি সি ++ এর সুপারসেট যেমনটি 1985 সালে বিদ্যমান ছিল। বেশ ভাল লেখা সি আইনী সি ++ হিসাবেও রয়েছে example উদাহরণস্বরূপ, কার্নিহান এবং রিচি-র প্রতিটি উদাহরণ: "দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ (২ য় সংস্করণ)" এছাড়াও একটি সি ++ প্রোগ্রাম। "
বেন 19

উত্তর:


183

সি কখনও সি ++ এর উপসেট ছিল না। এর সবচেয়ে সুস্পষ্ট উদাহরণ হ'ল int new;। এটি C89 এবং C ++ 98 সাল থেকে সত্য এবং ভাষাগুলি একে অপরের থেকে আরও বেড়েছে যখন নতুন মান প্রকাশিত হয়েছে।

আমার কি সি / সি ++ শব্দটি ব্যবহার করা বন্ধ করা উচিত?

হ্যাঁ

যদি # 1 এর উত্তর হ্যাঁ হয় তবে আমি এমন একটি প্রোগ্রামকে কীভাবে কল করব যেখানে সি এবং সি ++ এর মিশ্রণ ব্যবহার করা হবে?

একটি উত্স ফাইল একটি ভাষায় বা অন্য ভাষায় লেখা হয়। একটি প্রোগ্রাম একসাথে কাজ করে একাধিক ভাষা থেকে কোড, বা বিভিন্ন সংকলিত বস্তুর লিঙ্ক দ্বারা উত্পাদিত একটি এক্সিকিউটেবল সমন্বিত হতে পারে। আপনি বলবেন যে প্রোগ্রামটি সি এবং সি ++ এ লেখা হয়েছিল, "সি / সি ++" কোনও ভাষা নয়।

উভয়ই 'আলাদা' ভাষা হওয়ায় এটি সম্ভবত যে কোনও সময় সি ++ সংকলক সি ভাষায় লিখিত সমর্থনকারী কোডটি বন্ধ করে দেয়

3) তারা কখনও করেনি। char *a = malloc(10);সি এবং সি ++ যতক্ষণ না তাদের আইএসও মান রয়েছে ততদিন সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ হয়নি (প্রাক-মানকৃত দিনগুলি সম্পর্কে আমি সমস্ত বিবরণ জানি না)। লিংকগুলি ক্লিক করুন বা একটি ফাইলের জন্য নীচে দেখুন যা সি 89 এবং তার চেয়ে ভাল, তবে কোনও সি ++ মানের অধীনে বৈধ নয়।

৪) তবে, কার্যকারী গ্রুপগুলি একে অপরকে সচেতন তবে মানকগুলি সিদ্ধান্ত নেয় যা তাদের পক্ষে সবচেয়ে ভাল।

/* A bunch of code that compiles and runs under C89 but fails under any C++ */

/* type aliases and struct names occupy separate namespaces in C, not in C++ */
struct S { int i; };
typedef int S;


struct Outer { struct Inner { int i; } in; };
/* struct Inner will be Outer::Inner in C++ due to name scope */
struct Inner inner;


/* default return type of int in C, C++ functions need explicit return types */
g() {
    return 0;
}


/* C sees this as two declarations of the same integer,
 * C++ sees it as redefinition */
int n;
int n;


/* K&R style argument type declarations */
void h(i) int i; { }


/* struct type declaration in return type */
struct S2{int a;} j(void) { struct S2 s = {1}; return s; }


/* struct type declaration in argument, stupid and useless, but valid */
/*void dumb(struct S3{int a;} s) { } */


/* enum/int assignment */
enum E{A, B};
enum E e = 1;


void k() {
    goto label; /* C allows jumping past an initialization */
    {
        int x = 0;
label:
        x = 1;
    }
}


/* () in declaration means unspecified number of arguments in C, the definition
 * can take any number of arguments,
 * but means the same as (void) in C++  (definition below main) */
void f();

int main(void) {
    f(1); /* doesn't match declaration in C++ */
    {
        /* new is a keyword in C++ */
        int new = 0;
    }

    /* no stdio.h include results in implicit definiton in C.  However,
     * as long as a matching function is found at link-time, it's fine.
     * C++ requires a declaration for all called functions */
    puts("C is not C++");
    {
        int *ip;
        void *vp = 0;
        ip = vp; /* cast required in C++, not in C */
    }
    return 0;
}

/* matches declaration in C, not in C++ */
void f(int i) { }

আমি সর্বদা এটি উল্লেখ করার মতো অনুভব করি যে সি হ'ল উদ্দেশ্য-সি এর একটি উপসেট।


59
উদ্দেশ্যমূলক-সি বিশেষত সি এর একটি কঠোর সুপারসেট হিসাবে তৈরি করা হয়েছিল , এতে কোনও বিরোধী সিনট্যাক্স এবং পুরোপুরি অরথোগোনাল অবজেক্ট সিস্টেম নেই। এটি এমন একটি চূড়ান্ত দিকে নেওয়া হয় যে আপনি "উদ্দেশ্যমূলক" অংশটি "অবজেক্টিভ-সি" এর অংশ নিতে পারেন এবং এটি অন্যান্য ভাষায় বোল্ট করতে পারেন, উদাহরণস্বরূপ উদ্দেশ্য-মোডুয়ালা -2 তৈরি করে। এবং সর্বাধিক বিখ্যাত, অ্যাপলের অবজেক্টিভ-সি ++ এ দুটি সম্পূর্ণ orthogonal, অ-ইন্টারেক্টিভ, অ-সংহত ইন্টিগ্রেটেড অবজেক্ট সিস্টেম রয়েছে।
জার্গ ডব্লু মিট্টাগ

20
@ মাসনওহিলার যদি ওপি দেখতে চায় যে সি এর প্রকৃত সুপারস্টেট কেমন দেখাচ্ছে।
xhainingx

26
"একটি উত্স ফাইল একটি ভাষায় বা অন্য ভাষায় লেখা হয়।" আমার প্রোগ্রামটিকে এটি বলুন যা স্ট্যান্ডার্ড সি 99 এবং সি ++ 89 হিসাবে পরিষ্কারভাবে সংকলন করে। উভয়ই ভাষা অন্যটির উপসেট নয়, তবে তাদের দুটি সেটের একটি ছেদ রয়েছে যা ব্যাপকভাবে লক্ষ্যবস্তুযুক্ত। লুয়া, ইত্যাদি দেখুন।
উপুড়হস্ত

28
@ উল্লেখযোগ্য আমি সি ++ কোড লিখতে পারি যা খুব চলতে javacপারে তবে কী হবে?
xhainingx

22
@ মুনিফিসিয়েন্ট এমন একটি প্রোগ্রামের একটি উদাহরণ যা তিনটি ভাষায় সংকলন করা যেতে পারে - সি, / বিন / শ, এবং f77 - অ্যাপলিনিক আইওসিসি 1986-এ প্রবেশ করুন your আপনার সংজ্ঞা অনুসারে, ট্যাগটি C/Fortran/shএখন বোঝা যাচ্ছে ?! ioccc.org/years-spoiler.html#1986
Sjoerd

108

সেখানে রয়েছে একটি কারণ কেন এই পদ একসঙ্গে তাই প্রায়ই আসা যাবে। যদিও আপনি আপনার সি শিক্ষককে বলবেন না যে তার ভাষা সি ++ এর উপসেট, তবে এখানে কিছু সত্য রয়েছে। অন্যরা ইতিমধ্যে আপনার শিক্ষকের দৃষ্টিভঙ্গি প্রকাশ করেছে। এটি খুব সুন্দর (এবং উদাহরণ সহ চিত্রিত)। তবে আমরা হাতির দাঁত টাওয়ারে বা বইতে থাকি না।

আপনার বিগ বস আপনি যে সঠিক ভাষাটি ব্যবহার করেছেন সে সম্পর্কে কম যত্ন নিতে পারে না। যদি তিনি প্রোগ্রামিং সম্পর্কে কিছুটা জানেন তবে কেবল তাকে বলুন যে আপনি সি / সি ++ ব্যবহার করেছেন এবং এটির মতো মনে হবে "আমি এমন একটি ভাষা ব্যবহার করেছি যা ডিএলএল এবং সমস্ত জটিল স্টাফ সহ মেশিন কোডে সংকলিত হওয়া দরকার"। এটি "বাহ্যিক যোগাযোগ" অংশ।

আপনি যদি এমন একটি লাইব্রেরি তৈরি করেন যা সি এবং সি ++ উভয়ই ইন্টারফেস করতে পারে তবে আপনি অবশ্যই এটি সি / সি ++ লাইব্রেরি বলতে চান। অবশ্যই, কেউ হাত বাড়িয়ে জিজ্ঞাসা করবে আপনি কেন একে সি লাইব্রেরি বলছেন না যার মধ্যে সি ++ র‌্যাপার রয়েছে, এবং যাইহোক সি ++ সি লাইব্রেরিতে লিঙ্ক করতে পারে যাতে আপনার এটির উল্লেখ করার দরকার নেই। কেবল উত্তর দিন: "হ্যাঁ, আপনি ঠিক বলেছেন, এটি একটি সি / সি ++ গ্রন্থাগার"। এটি "অভ্যন্তরীণ যোগাযোগ" অংশ।

আপনি যদি সি ++ এর জন্য কোনও লেজিকাল অ্যানালাইজার তৈরি করেন তবে আপনি বিস্মিত হবেন যে এটি সি এর সাথে কতটা ভাল কাজ করে আপনার এমনকি এটি সমস্ত সংশোধন করার প্রয়োজনও পড়তে পারে না। এটি "যদি এটি হাঁসের মতো দেখায় ইত্যাদি" is অংশ।

প্রভৃতি

সি প্রোগ্রামের বেশিরভাগ অংশ আমি সি ++ কোড হিসাবে পরিবর্তন না করে সংকলন (এবং কাজ) দেখেছি। কয়েকটি ব্যতিক্রম বা ডগম্যাটিক (তবে প্রভাবশালী) প্রোগ্রামারদের আপনার স্বজ্ঞাকে বোকা বানাবেন না। সি এবং সি ++ এত ঘনিষ্ঠ, এবং প্রায়শই সামঞ্জস্যপূর্ণ এবং তাই প্রায়শই মিশ্র এবং একসাথে মিলে যায় যে সি / সি ++ শব্দটি ব্যবহৃত হয়। এটি ব্যবহার করা হয়েছে কারণ আপনি জাভা বা পিএইচপি না হওয়া সত্ত্বেও আপনি সি বা সি ++ বিবেচনা করছেন কিনা তা আসলেই বিবেচ্য নয় যেখানে এই ধরণের পরিস্থিতিগুলি বর্ণনা করা দরকারী । আমরা জানি এটি "ভুল", তবে আমরা যত্ন করি না, এটি ভুলের চেয়ে বেশি কার্যকর।

এটি অপব্যবহার করা হতে পারে, এটি নির্বোধ হতে পারে তবে তবুও, আমি নিশ্চিত নই যে প্রয়োজনের চেয়ে বেশি পেডেন্টিক হয়ে আপনি কী উপকার পাবেন এবং অন্যরা বুঝতে পারে এমন পদে যোগাযোগ করতে অস্বীকার করবেন। আপনি যদি কিছু নির্দিষ্ট পরিস্থিতিতে অস্বস্তি বোধ করেন তবে কেবল জেনেরিক শব্দটি সি / সি ++ ব্যবহার করবেন না, তবে ক্ষেত্রে প্রাসঙ্গিক শব্দটি (সি বা সি ++ হয়)।

ভবিষ্যতে ভয় পাবেন না। আমাদের অপারেটিং সিস্টেমগুলি সি তে লেখা হয় বেশিরভাগ সি / সি ++ বর্তমান সফ্টওয়্যার উত্পাদন সি ++ এ ঘটে। এই দম্পতি বেশ কিছুক্ষণ থাকার জন্য এখানে আছেন। একজনের সাথে অন্যের সাথে আরও বেমানান হওয়ার বিষয়ে আগ্রহ নেই (আসলে অন্যভাবে, অন্যদিকে)।

আপনার পয়েন্ট সম্পর্কে সুনির্দিষ্ট হতে:

1) এটি নির্ভর করে। হ্যাঁ এটি কখন কোনও বিভ্রান্তির কারণ হতে পারে, যখন আপনি অস্বস্তি বোধ করেন বা যখন এটি কেবল ভুল বা প্রসঙ্গের বাইরে। না যখন আপনি এটি পর্যাপ্ত মনে করেন।

2) এন / এ

3) আমি মনে করি না, তবে আমার কাছে কোনও স্ফটিক বল নেই।

4) কোন ধারণা

5) আমি কিছুই মনে করি না যেহেতু কিছুই এই দিকে ঠেলে দেয় না


7
শব্দগুলি হচ্ছিল বলে মন্তব্যগুলি সরানো হয়েছে।
ক্রিসএফ

3
কেন এই এত উত্সাহ আছে? এটি ভুল এবং মিথ্যা দাবি পূর্ণ!
জায়েবিস

5
@ জাইবিস আপনি কি দাবিগুলি মিথ্যা বা ভুল হিসাবে প্রসারিত করতে যথেষ্ট দয়া করবেন?
ব্যবহারকারীর সংখ্যা

3
আপনার যুক্তি অনুসরণ করে, সি / সি ++ / অবজেক্টিভ-সি / ফোর্টরান / পাসকাল একটি বৈধ এক্সপ্রেশন হওয়া উচিত তবে এটি নির্বোধ শোনায়। সি / সি ++ শব্দটির সাথে সমস্যাটি হ'ল এটি বেশ কয়েকটি জিনিসকে বোঝাতে পারে যাতে আপনার কোনও গ্যারান্টি নেই এটি পছন্দসই অর্থটি রক্ষা করবে। আমার অনুশীলনে, লোকেরা সাধারণত এটি বুঝতে পারে যে "সি কেবলমাত্র সি ++ এর একটি পুরানো আদি সংস্করণ" এবং এটি ঠিক ভুল।
মার্টিংকুনেভ

4
শব্দটির অভ্যন্তরীণ বৈধতা অতিক্রম করে, C/C++এটি একটি পরিষ্কার নয়, সুতরাং এটি কার্যকর নয়। আপনার উদাহরণ অনুসরণ করে, একটি C/C++ libraryহ'ল সি ++ র‌্যাপারযুক্ত সি লাইব্রেরি বা সি র‌্যাপার সহ একটি সি ++ লাইব্রেরি বলতে পারে। অথবা এর অর্থ হতে পারে যে গ্রন্থাগারটি বেশ কয়েকটি মডিউল দ্বারা গঠিত, কিছু সি ++ ব্যবহার করে সংকলিত হয়, কিছু সি-তে সংকলিত এটি মোটেই পরিষ্কার নয়। আমার কাছে, যে গ্রন্থাগারটি তৈরি করা হয়েছে C and C++তা অনেক বেশি পরিষ্কার, বা C library with compatibility with C++আরও অনেক স্পষ্ট। এবং এখানে অস্পষ্টতা কেবল দুটি ল্যাং
নিয়েই রয়েছে,

43

প্রবাহের বিরুদ্ধে গিয়ে আমি বলব এটি প্রসঙ্গে নির্ভর করে

"এটি একটি সি / সি ++ প্রোগ্রাম" এর মতো কিছু বলার সময় "সি / সি ++" শব্দটি সাধারণত উপযুক্ত হয় না, তবে এটি অন্যান্য উত্তরের গভীরতায় অন্বেষণ করা হয়েছে।

তবে, প্রাসঙ্গিকগুলি থাকতে পারে যেখানে সি / সি ++ উপযুক্ত হতে পারে।

  • বিভিন্ন লাইব্রেরি রয়েছে যা সাধারণত একটি সি এবং সি ++ এপিআই উভয়ই থাকে। আমার ধারণা, আপনি যদি এ জাতীয় বিষয়টিকে সি / সি ++ লাইব্রেরি বলেন তবে সত্য থেকে দূরে নয়। আমরা মানবেরা তথ্য সংকোচন করতে পছন্দ করি, সুতরাং "ওপেনসিভি একটি সি / সি ++ গ্রন্থাগার" বলা সংক্ষিপ্ত, স্পষ্ট এবং বোধগম্য, এটির সাথে তুলনা করুন "ওপেনসিভি একটি লাইব্রেরি, যা সি এবং সি ++ উভয়ই শিরোলেখ দ্বারা প্রেরণ করা হয়"।
  • আপনি ভাষা নকশা এবং বাক্য গঠন সম্পর্কে কথা বলতে পারেন। ভাষার সিনট্যাক্সের দৃষ্টিকোণ থেকে আপনি বলতে পারেন যে কোনও ভাষার C / C ++- মত সিনট্যাক্স রয়েছে।
  • আপনি একটি কোডিং প্রতিযোগিতার আয়োজন করেছেন এবং আপনি সি এবং সি ++ এ উভয় সমাধানই গ্রহণ করেছেন
  • আপনি একটি নতুন প্রোগ্রামার নিয়োগ করছেন, এবং বেশিরভাগ কাজ সি বা সি ++ এর হবে, সুতরাং প্রোগ্রামার উভয় ভাষা জানবেন বলে আশা করা যায়। এটি এম্বেডড বিকাশে সাধারণ, যেখানে সি কিছু (সাধারণত খুব ছোট) মাইক্রোকন্ট্রোলারগুলির জন্য এবং অন্যদের জন্য সি ++ আরও উপযুক্ত। এই ক্ষেত্রে আপনি বলতে পারেন যে আপনি একজন সি / সি ++ প্রোগ্রামার সন্ধান করছেন।

10
আমি দেখতে পাচ্ছি যে পিএসওতে সাধারণ sensকমত্যের বিপরীতে অবস্থানগুলি (যেখানে আপনাকে অবশ্যই "চতুর / হাইপ / দ্য ওয়ান এবং ইউনিক রাইট থিং" এর মতো দেখতে এমন কোনও কিছুকেই উজ্জীবিত করতে হবে এবং বাকী অংশগুলিকে ডাউনওয়েট করতে হবে) যথারীতি স্বাগত। ছেলেরা, প্রোগ্রামিং কোনও ধর্ম নয় এবং এই ওয়েব সাইটটি কোনও পবিত্র বই নয়।

16
গত বুলেট পয়েন্ট আসলে একটি প্রধান সমস্যা তুলে ধরে: আপনি খুঁজছেন (1) ব্যক্তির জন্য যে knowns পারেন C অথবা সি ++, (2) একজন ব্যক্তি যে জানে উভয় সি এবং সি ++ বা (3) একজন ব্যক্তি যে গুলিয়ে ফেলা চলবে না শুনতে এগুলো বিভিন্ন ভাষা. তৃতীয় পুলটি বাড়তে সহায়তা করবেন না।
5gon12eder

10
শেষ বুলেট পয়েন্টটি "সি এবং সি ++ এর অভিজ্ঞতার সাথে প্রোগ্রামার" হিসাবে আরও ভালভাবে প্রকাশিত হবে যদি আপনি এটি যা সন্ধান করছেন এটিই। "প্রোগ্রামার" শিরোনামে একটি কাজের বিজ্ঞাপন যা অভিজ্ঞতার অধীনে "সি এবং সি ++" বা "সি বা সি ++" শিরোনামের তালিকা তৈরি করে প্রয়োজনীয় একটি যোগ্যতা হিসাবে "সি / সি ++" তালিকাভুক্ত একটি শিরোনামের থেকে উল্লেখযোগ্যভাবে আলাদা নয়, তবে এটি অনেক সঠিক আরও অনেক কিছু। আপনি যেমন একটি কাজের জন্য যে ধরণের ব্যক্তির সন্ধান করছেন তার মত প্রকাশের যথার্থতার সত্যই প্রশংসা করতে পারে।
একটি সিভিএন

10
লিখিত ভাষায়, '/' এটিকে সাধারণত যৌক্তিক হিসাবে ব্যাখ্যা করা হয় or, যৌক্তিক হিসাবে নয় xor। সুতরাং এটি হয় উভয় বা উভয়। কাজের তালিকায় আপনি সি বা সি ++ বা উভয়ই জানেন। এখন, আমার মনে হচ্ছে অনেক লোক এই শব্দটি সম্পর্কে ধর্মীয় হচ্ছে। একটি ভাল সি প্রোগ্রামার সি ++ উভয় ভাষা যে কতগুলি পৃথক পৃথকভাবে সিলেক্ট করা পুরোপুরি ঠিক আছে। আমি পিএইচপি কোডিং শুরু করেছি এবং তারপরে আমি স্কালায় চলে এসেছি (দুটি সম্পূর্ণ ভিন্ন ভাষা) কেন একজন সি প্রোগ্রামার সি ++ বা বিপরীত ব্যবস্থা গ্রহণ করতে সক্ষম হবে না? সি / সি ++ শব্দটির কিছু সঠিকতা আছে যদি সঠিক প্রসঙ্গে ব্যবহার করা হয়।
ILikeTacos

4
আপনি সি / সি ++ ব্যবহার করতে পারেন এমন একটি প্রোগ্রাম যা সি বা সি ++ হিসাবে পৃথক সি বা সি ++ উপাদান সহ একটি প্রোগ্রাম প্রোগ্রাম করার জন্য কাজ করা হয় describe
ইমিবিস

30

সাধারণভাবে এসও ব্যবহারকারীরা যে প্রশ্নটি জিজ্ঞাসা করছেন তাকে কোনও ভাষা চয়ন করতে বলে: সি বা সি ++। কেন?

সি এবং সি ++ এর মধ্যে অনেক সূক্ষ্ম পার্থক্য রয়েছে। উদাহরণস্বরূপ, সি ++ এ, constবৈশ্বিক স্কোপে একটি চলকটির অভ্যন্তরীণ সংযোগ থাকে যদি না ঘোষণা করা হয় তবে externসি তে এটি ঘোষিত না হলে বাহ্যিক সংযোগ রয়েছে static। "সি / সি ++" বলার মাধ্যমে, ওপি জ্ঞানটি জোর দিচ্ছে যে তাদের প্রশ্নের উত্তর সি এবং সি ++ উভয় ক্ষেত্রে একই, যখন এটি খুব ভাল হতে পারে না। এটি অনাবশ্যকভাবে উত্তরদাতাদের পক্ষে জিনিসগুলিকে আরও শক্ত করে তোলে।

  • কখনও কখনও আমরা চিহ্নিত করতে পারি যে কোডটি একটি ভাষায় বা অন্য ভাষায় বৈধ নয় (উদাহরণস্বরূপ, void*পয়েন্টার থেকে পয়েন্টারে অবজেক্ট রূপান্তরগুলি সি ++ এ বৈধ নয়)। এটা বিরক্তিকর। আপনি যখন সি-সিটিতে বৈধ তবে সি ++ নন এমন একটি কোডের টুকরো থাকলে আপনি কেন "সি / সি ++" বলছেন? আপনি কি সিটি করতে চেয়েছিলেন, নাকি কোডটি কেবল এটিই একটি ত্রুটি যা সি ++ হবে?

  • কখনও কখনও ভাষার উপর নির্ভর করে উত্তর পৃথক হবে (উদাহরণস্বরূপ, চলক দৈর্ঘ্যের অ্যারে সি 99 তে বিদ্যমান তবে সি ++ তে নয়)। আপনি যদি কোন ভাষা নিয়ে কথা বলছেন তা যদি আমরা না জানি, হয় আমাদের অনুমান করতে হবে বা উভয়টির জন্য একটি উত্তর লিখতে হবে যখন কেবলমাত্র একজনই আসলে কার্যকর হবে, কারণ আপনি জানেন যে আপনি আসলে কোন ভাষা ব্যবহার করছেন; আপনি শুধু আমাদের বলছেন না!

  • কখনও কখনও উত্তর দুটি ভাষার জন্যই একই, তবে এটি নিশ্চিত হওয়া শক্ত। উদাহরণস্বরূপ, আমি মনে করি সি এবং সি ++ এর একই সংখ্যার রূপান্তর নিয়ম রয়েছে তবে সত্য, সত্যই নিশ্চিত হওয়ার জন্য আমাকে উভয় মানের যত্ন সহকারে পড়তে হবে। আবার, এটি আমাকে প্রয়োজনীয় দ্বিগুণ কাজ করতে বাধ্য করে যখন আপনি কেবল কোনও একটি ভাষার যত্ন নেন।

যাইহোক, আপনার অন্যান্য প্রশ্নের উত্তর দিতে:

  1. হ্যাঁ.

  2. আপনি যদি সি এবং সি ++ কোড একসাথে লিঙ্ক করে থাকেন তবে উভয় ট্যাগ ব্যবহার করা গ্রহণযোগ্য, তবে দয়া করে প্রতিটি ফাইল কোন ভাষায় রয়েছে তা নির্দিষ্ট করুন।

  3. মাঝে মাঝে ব্রেকিং পরিবর্তন হয়, তবে এগুলি বিরল এবং সাধারণত প্রভাব সীমিত থাকে (অন্যথায় তারা অনুমোদিত হয় না)। উদাহরণস্বরূপ, autoসি ++ 11 এ।

  4. তারা সরাসরি সহযোগিতা করে বলে আমি মনে করি না, তবে তারা অন্য ভাষার বিকাশের দিকে মনোযোগ দেয় এবং সামঞ্জস্যতা আরও জটিল করে তোলে এমন পরিবর্তনগুলি প্রবর্তন এড়াতে চেষ্টা করে।

এবং যদি আপনি উভয় ভাষা সম্পর্কে সত্যই জানতে চান তবে তা ভাল, এবং আপনি আপনার প্রশ্নে এটি বলতে পারেন। আপনি যখন "সি / সি ++" বলবেন তখন আমি আপনার অর্থ কী তা সত্যিই নিশ্চিত নই এবং এগুলি দেখতে দুটি ভাষা সম্পর্কে একটি ধারণা তৈরি করার মতো মনে হচ্ছে।


7
আমি জানি যে এমন কিছু লোক আছেন যারা সি এবং সি ++ এর ছেদটিতে কোড লিখেন এবং টাইপেকিংয়ের জন্য সি ++ সংকলক ব্যবহার করেন তবে কোড তৈরির জন্য একটি সি সংকলক। যদিও বাস্তবে তা বোধগম্য হয় কি না তা আমার কোনও ধারণা নেই। যাইহোক, এটা একটি বিষয় যে লিনাক্স কার্নেল MAILINGLIST বছরের প্রতিটি দম্পতি আপ আসে, যখন কেউ (লিনাক্সের কার্নেলের ইউনিফায়েড অবজেক্ট ওরিয়েন্টেড ড্রাইভার মডেল খুবই গুরুত্বপূর্ণ) নামান্তর করতে একটি প্যাচ জমা struct classভালো কিছু করার জন্য struct klassঠিক যে কারণে জন্য, এবং তারপরে লিনাস তাকে গুলি করে হত্যা করে।
জার্গ ডব্লু মিট্টাগ

3
@ জার্গডব্লিউমিতাগ: আমি "সি / সি ++" কে "সি এবং সি ++ এর সাধারণ উপসেট" এর জন্য "আ শর্টহ্যান্ড" হিসাবে ব্যবহার করেছি এবং তিনি কী সম্পর্কে কথা বলছিলেন তাও আমি জানি না। সাধারণ উপসেটে ইচ্ছাকৃতভাবে কাজ করা লোকেরা সংক্ষেপ না করে এটিকে সুস্পষ্ট করে তুলেছে make
বার্ট ভ্যান ইনজেন শেেনা

2
এটি একটি ভাল উত্তর বিশেষভাবে সি ++ / সি ব্যবহার সম্পর্কে স্ট্যাক এক্সচেঞ্জ প্রশ্ন , বরং সাধারণভাবে থাকে।
ইমিবিস

@ বার্টওয়ানআইগেনশেনাউ আপনি কতজন স্টাড কমিটির সদস্যের সাথে দেখা করেছেন?
কৌতূহলী

18

আমাকে সর্বদা বলা হয়েছিল যে ক্লাস সহ সি সি ++ বা সি ++ এর একটি উপসেট। এবং সি ++ x0, সি ++ 11 (বা সাধারণ সি ++ 11/14/17 সাধারণভাবে) উপস্থিত না হওয়া পর্যন্ত এটি শান্ত ছিল।

সি কখনও সি ++ এর উপসেট হয় নি। উদাহরণস্বরূপ C89 সি ++ 98 এর উপসেট নয়।

কয়েকটি উদাহরণ:

  • ফাংশন প্যারামিটার ঘোষণার জন্য C89 সনাক্তকারী-তালিকা ফর্মটি C ++ এ সমর্থিত নয়
  • C89 এবং C ++ 98 এর অক্ষর ধ্রুবকগুলির জন্য বিভিন্ন ধরণের রয়েছে
  • C89 এবং C ++ 98 এর স্ট্রিং আক্ষরিক জন্য বিভিন্ন ধরণের রয়েছে
  • লজিকাল অপারেটরগুলি সি 98 এবং সি ++ 98 ( intবনাম bool) এ বিভিন্ন ধরণের ফলন দেয়
  1. আমি কি সি / সি ++ শব্দটি ব্যবহার করা বন্ধ করব?

হ্যাঁ.

  1. যদি # 1 এর উত্তর হ্যাঁ হয় তবে আমি এমন একটি প্রোগ্রামকে কীভাবে কল করব যেখানে সি এবং সি ++ এর মিশ্রণ ব্যবহার করা হবে?

একটি প্রোগ্রাম হয় হয় সি বা সি ++ (এমনকি যদি খুব কিছু প্রাথমিক প্রোগ্রাম কোনও সি বা সি ++ সংকলক দিয়ে সংকলন করতে পারে)। এটি সংকলন করতে আপনি কোন সংকলক ব্যবহার করছেন? এটি আপনার প্রশ্নের উত্তর দেওয়া উচিত। হার্বিসন ও স্টিল সি এবং সি ++ এর একটি সাধারণ উপসেট নির্ধারণের জন্য ক্লিন সি শব্দটি তৈরি করেছিলেন তবে আমি মনে করি এটি একটি খারাপ ধারণা।

সম্পাদনা : তবে আমি স্বীকার করি যে প্রযুক্তিগতভাবে আপনি সি এবং সি ++ অবজেক্ট ফাইলগুলিকে একটি প্রোগ্রামে সংযুক্ত করতে পারেন তবে ওথের অনেকগুলি ভাষা রয়েছে যা উদাহরণস্বরূপ জাভা এবং সি ++ এর জন্য একটি প্রোগ্রামে মিশ্রিত। আমি মনে করি সি / সি ++ প্রোগ্রামটি শব্দটি ব্যবহার করে কেবল বিভ্রান্তি বাড়িয়ে তোলে যে এটি সি / সি ++ নামে একক ভাষায় লেখা হয়েছে।

  1. উভয়টিই 'আলাদা' ভাষা বলে মনে করা যায় যে কোনও সময়ে সি ++ সংকলক সি ভাষায় লিখিত সমর্থন কোডটি বন্ধ করে দেয় (যেহেতু আধুনিক সি ++ পয়েন্টার, গতিশীল মেমোরি হ্যান্ডলিং ইত্যাদির মতো বেসিক স্টাফগুলির জন্য সি মানসিকতা থেকে সরে যায়)

_GenericC99 বা C11 এর অনেকগুলি বৈশিষ্ট্য রয়েছে (উদাহরণস্বরূপ: পরিবর্তনশীল দৈর্ঘ্যের অ্যারে, নমনীয় অ্যারে সদস্য , ...) যা কোনও সি ++ সংস্করণ দ্বারা সমর্থিত নয়।


পুনরায় বহুগুণ প্রোগ্রাম: জেএনআই ব্যবহার করে একটি প্রোগ্রামকে সি / জাভা প্রোগ্রাম বলা যেতে পারে। দুটি ভাষা একসাথে ব্যবহৃত হওয়ার অর্থ এই নয় যে এগুলি একসাথে সংকলিত হয়েছে।
ইমিবিস

1
stroustrup.com/bs_faq.html#C-is-subset "কঠোর গাণিতিক দিক থেকে সি সি ++ এর উপসেট নয় ... তবে, সি ++ সি দ্বারা সমর্থিত প্রতিটি প্রোগ্রামিং কৌশল সমর্থন করে ... এটি হওয়া অস্বাভাবিক নয় is কয়েক ঘন্টার মধ্যে কয়েক হাজার লাইনের সি-স্টাইল সি ++ তে রূপান্তর করতে সক্ষম Thus সুতরাং, সি ++ এএনএসআই সি এর তত বেশি সুপারসেট যেমন এএনএসআই সি কেএন্ডআর সি এর সুপারস্টার এবং আইএসও সি +++++++++ যেমনটি 1985 সালে বিদ্যমান ছিল । ভাল লিখিত সি আইনী সি ++ হিসাবেও রয়েছে example উদাহরণস্বরূপ, কার্নিহান এবং রিচি-র প্রতিটি উদাহরণ: "দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ (২ য় সংস্করণ)" এছাড়াও একটি সি ++ প্রোগ্রাম। "
বেন 9

"দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ (২ য় সংস্করণ)" এ প্রথম প্রোগ্রাম (হ্যালো ওয়ার্ল্ড) "বেন ফেরতের প্রকারের মূল বাদ দেয় যা সি ++ এ অবৈধ।
ohah

1
@ বাহ, দেখে মনে হচ্ছে প্রফেসর স্ট্রাস্ট্রপ এর পরে একটি মিস করেছে :-) নোট যেটি সি 11 তে অনুমোদিত নয় :-) খুব নিশ্চিত যে এটি সি ++ এর পূর্ববর্তী সংস্করণগুলিতে অনুমোদিত হয়েছিল।
বেন 11

4
@ ওহ, এটি সি ++ এর প্রথম সংস্করণ নয়। বইটি 1988 সালের এবং সেই সময় দুটিই ভাষা আইএসও স্ট্যান্ডার্ড ছিল না। সেই সময় সি ++ এর বর্তমান সংস্করণটি ছিল বার্জন স্ট্রস্ট্রপের 1985 সালের বই।
বেন

17

কিছু প্রোগ্রাম সি এবং সি ++ এর মিশ্রণে লেখা হয়

এটি জীবনের সত্য মাত্র। আপনি সি এবং সি ++ থেকে অবজেক্ট ফাইলগুলি সংকলন করতে এবং সেগুলিতে লিঙ্ক করতে পারেন। ফলাফলটিকে বেশ যুক্তিসঙ্গতভাবে "একটি সি / সি ++ প্রোগ্রাম" বলা যেতে পারে।

তবে এটি সামগ্রিকভাবে কেবল প্রোগ্রাম। পৃথক সংকলন ইউনিট সম্পর্কে কি?

সি এর একটি উপসেট রয়েছে যা সি ++ এর উপসেটও

সেই উপসেটে লিখিত একটি প্রোগ্রাম (বা সংকলন ইউনিট) কনফর্মেন্ট সি এবং সি ++ সংকলকগুলির অধীনে একই সংকলন করবে এবং আচরণ করবে। এই জাতীয় প্রোগ্রাম বা ফাইলকে যথাযথভাবে "একটি সি / সি ++ প্রোগ্রাম" বা "একটি সি / সি ++ ফাইল" বলা যেতে পারে।

একটি শিরোনাম ফাইল হিসাবে একটি আংশিক প্রোগ্রাম এছাড়াও সি এবং সি ++ প্রোগ্রাম উভয় ব্যবহার করা যেতে পারে। এই জাতীয় শিরোনাম ফাইলগুলি যথাযথভাবে C / C ++ শিরোনাম হিসাবে উল্লেখ করা যেতে পারে।

অধ্যাপক বার্জন স্ট্রস্ট্রপকে উদ্ধৃত করে:

সি কি সি ++ এর একটি উপসেট?

কঠোর গাণিতিক অর্থে সি সি ++ এর উপসেট নয়। এমন প্রোগ্রাম রয়েছে যা বৈধ সি, তবে বৈধ সি ++ নয় এবং এমনকী কোড লেখার কয়েকটি উপায় যা সি এবং সি ++ এর আলাদা অর্থ রয়েছে। যাইহোক, সি ++ সি দ্বারা সমর্থিত প্রতিটি প্রোগ্রামিং কৌশল সমর্থন করে প্রতিটি সি প্রোগ্রাম একইভাবে চালানো সময় এবং স্থান দক্ষতার সাথে সি ++ তে মূলত একইভাবে লেখা যেতে পারে। এএনএসআই সি-এর কয়েক হাজার লাইনের সি-স্টাইল সি ++ তে কয়েক ঘন্টার মধ্যে রূপান্তর করতে সক্ষম হওয়া অস্বাভাবিক কিছু নয়। সুতরাং, সি ++ এএনএসআই সি-এর ততটাই সুপারস্টেট যেমন এএনএসআই সি কে ওআর সি-র একটি সুপারস্টেট এবং ততই আইএসও সি ++ সি ++ এর সুপারস্টেট হিসাবে 1983 সালে বিদ্যমান ছিল।

ভাল লিখিত সি আইনী সি ++ থাকে। উদাহরণস্বরূপ, কার্নিগান অ্যান্ড রিচি-র প্রতিটি উদাহরণ: "দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ (২ য় সংস্করণ)" একটি সি ++ প্রোগ্রামও।

সুতরাং হ্যাঁ সি / সি ++ এর মতো জিনিস রয়েছে। এটি বৈধ সি এবং বৈধ সি ++ উভয়ই যা কিছু।

সি প্রসেসরটি সি ভাষার অংশ is সি ++ প্রি-প্রসেসরটি সি ++ ভাষার অংশ

আপনি একটি সংকলন ইউনিট লিখতে পারেন যা সি বা সি ++ এর অধীনে সংকলন করবে এবং আলাদা হবে । উদাহরণস্বরূপ, এটি সি তে সংকলিত বেসিক কার্যকারিতা থাকতে পারে তবে সি ++ তে সংকলিত হলে সি ++ লাইব্রেরির সুবিধা নিন।

প্রোগ্রামটি যদি মূলত একই হয় তবে অতিরিক্ত বৈশিষ্ট্য সহ, এটি একই প্রোগ্রাম বলা ঠিক ভুল নয় । এটি একই, তবে ভিন্ন।

বেশিরভাগ সি প্রোগ্রামাররা কমপক্ষে সামান্য সি ++ এবং তদ্বিপরীত করতে পারে

এই জাতীয় ব্যক্তিকে সি / সি ++ প্রোগ্রামার বলা অযৌক্তিক নয়। হ্যাঁ, তারা সম্ভবত একটিতে দক্ষতা অর্জন করেছেন, তবে এমন কেউ কি আছেন যে একজন দক্ষ সি বা সি ++ প্রোগ্রামার যিনি আক্ষরিক অর্থে অন্য ভাষার কোনও কাজই করতে পারবেন না ? এক উপায়ে, তারা সবাই কি সি / সি ++ প্রোগ্রামার নয়?

"সি / সি ++" বলার কিছু নেই। বিষয়গুলি কী বোঝা যাচ্ছে

ইংরেজি ভাষা শব্দের সংজ্ঞা প্রকাশের জন্য কোনও সরঞ্জাম নয় । আপনি যুক্তিবিদ্যার জন্য ইংরেজি ব্যবহার করতে পারেন তবে কেবল ন্যায়সঙ্গত এবং দুর্দান্ত প্রচেষ্টার সাথে।

এটি কারণ শব্দের স্বাভাবিকভাবেই সঠিক অর্থ হয় না, বরং ডেনোটেশন এবং অর্থের একটি অস্পষ্ট মেঘ। লোকেরা আপনি কী বলছেন তা যদি বোঝা যায় তবে তা গুরুত্বপূর্ণ।


5
@ বিЈовић তারা একটি ছোট টুকরো টার্মিনোলজির গ্রহণযোগ্যতা সম্পর্কে আপনার সাথে একমত নয় যাতে আপনি সিদ্ধান্তে পৌঁছে যে তারা পার্থক্য বুঝতে পারে না এবং অক্ষম are এটি বলার মতো একটি অযৌক্তিক বিষয়।
বেন

4
@ এল.পেস্ক্যাডো হ্যাঁ। আপনি দেখতে পাবেন যে লোকেরা আসলে পিএইচপি / জাভাস্ক্রিপ্ট উল্লেখ করে। কেন না? কথাটি বুঝতে হবে, শব্দের সাথে গেম খেলতে হবে না।
বেন

10
@ বিЈовић আপনি কোন অর্থ বোধ করছেন না। তারা "সম্পূর্ণ আলাদা" নয়। সি ++ সি এর চেয়ে অনেক বড় ভাষা তবে এটি এর মধ্যে প্রায় সমস্ত সি অন্তর্ভুক্ত করে। অসামঞ্জস্যতা রয়েছে যা সি ++ যথাযথ সুপারস্টেট হওয়া রোধ করে তবে এগুলি ছোট, অতিরিক্ত সংরক্ষিত শব্দের মতো আরও কয়েকটি ক্যাসেট প্রয়োজনীয় হয়ে ওঠে তবে এটি যথেষ্ট পরিমাণে। এটি প্রায় একটি যথাযথ সুপারস্টার, ঠিক যথেষ্ট নয়।
বেন 14

7
@ বিЈовић সম্ভবত আমি কী লিখলাম তা আপনি বুঝতে পারেন নি। আপনি প্রতিটি ক্ষেত্রে কীভাবে কোনও সি প্রোগ্রামকে রূপান্তর করা সম্ভব তা দেখতে এখানে কেন তাকাবেন না যাতে এটি সি ++ হিসাবেও সংকলিত হয়। david.tribble.com/text/cdiffs.htm#C99-vs-CPP9
বেন

7
@ বিЈовић যদি আপনি পরিভাষা সম্পর্কে উদ্বিগ্ন হন তবে আপনার সচেতন হওয়া উচিত যে সি " কার্যকরী " নয়, বরং " প্রক্রিয়াজাতীয় " a এমন একটি পার্থক্য যা আপনি অন্যের প্রতি অক্ষমতার অভিযোগের নিন্দা করার আগে বুঝতে চান।
আরএম

15
  1. আমি কি সি / সি ++ শব্দটি ব্যবহার করা বন্ধ করব?

একেবারে। এই নির্মাণটি কী প্রকাশ করতে চেয়েছিল তা পরিষ্কার নয়, সম্ভবত এই শব্দটি ব্যবহার করে এমন ব্যক্তির পক্ষে সি এবং সি ++ কী রয়েছে তা নিয়ে বিভ্রান্তি রয়েছে।

যেহেতু এই বিভ্রান্তি হতাশার একটি সাধারণ উত্স, তাই অনেক লোক এ সম্পর্কে বেশ আবেগপ্রবণ হয়ে পড়েছে এবং কেবলমাত্র সেই শব্দটির উপস্থিতি তাদের অবদান সম্পর্কে নেতিবাচক হওয়ার পক্ষে যথেষ্ট কারণ হবে। এটি নির্বোধ মনে হতে পারে তবে এটি আমাদের কাছে রয়েছে বলে মনে হয়।

আমি প্রস্তাব দিচ্ছি যে "সি / সি ++" সম্পর্কে কথা বলার পরিবর্তে আপনি এমন একটি শব্দ ব্যবহার করেন যা আসলে আপনার অর্থটি পরিষ্কার করে দেয়।

  • আপনি যদি সি-তে এমন কিছু কথা বলছেন যা সি ++ এর ক্ষেত্রেও সত্য হতে পারে বা নাও হতে পারে, কেবল সি বলে ।

    উদাহরণ: সিটিতে ফাংশনটি কীভাবে mainঘোষণা করা উচিত ?

    প্রথমে, মনে হতে পারে সি ++ জন্য উত্তর একই: int main()বা int main(int, char**)। তবে আলোচনাটি চলার সাথে সাথে এটি উল্লেখ করা প্রাসঙ্গিক হতে পারে যে সি ++ এ, ফাংশনটি বিশ্বব্যাপী ঘোষিত হতে হবে, যা সি-তে কোনও namespaceঅর্থবোধ করে না, কারণ এটির কোনও ফলাফল নেই । অন্যদিকে, mainসি ++ না করে এমন সময় পুনরাবৃত্তভাবে কল করার অনুমতি দেয় । সি ++ এ, return 0;আপনি যদি “পড়ে যান” mainতবে একটি গুরত্ব রয়েছে তবে সিতে যে returnকোনও পথে বিবৃতি প্রয়োজন। তালিকাটি এগিয়ে যায় এবং আপনি আলোচনার ভাষাটি কী তা সামনে পরিষ্কার করে দিলে আলোচনাটি আরও সহজ হয়।

  • আপনি যদি সি ++ তে এমন কিছু সম্পর্কে কথা বলছেন যা হয়তো সি-র ক্ষেত্রেও সত্য হতে পারে বা নাও পারে, কেবল সি ++ বলুন ।

    উদাহরণ: একটি malloc()এড অ্যারে intপ্রাথমিকভাবে সি ++ এ অল-জিরো হবে?

    সি এর সংক্ষিপ্ত উত্তর একই হতে পারে: না। তবে উত্তরটি এগিয়ে যাওয়ার সাথে সাথে এটি উল্লেখ করা সার্থক হতে পারে যে callocসি ++ এ থাকাকালীন সি একটি ভাল বিকল্প হতে পারে , সম্ভবত এটি ব্যবহার করা std::vector<int>আরও ভাল বিকল্প ছিল।

  • আপনি সি এবং সি ++ এর মধ্যে একটি সাদৃশ্য বাতলান করতে চান তাহলে, বলে সি এবং সি ++

    উদাহরণ: সি এবং সি ++ এ sizeofএকটি intবাস্তবায়ন সংজ্ঞায়িত হয় এবং সংযোজক এবং আর্কিটেকচারের মধ্যে পৃথক হতে পারে।

    এখানে আমরা উল্লেখ করতে চাই যে সি এবং সি ++ একইভাবে আচরণ করে। আমরা উভয় ভাষা সম্পর্কে স্পষ্টভাবে কথা বলছি ।

আমি আসলে আপনাকে সুপারিশ করি যে আপনি আরও নির্দিষ্ট হন এবং কেবল "সি" বা "সি ++" নয় তবে সুনির্দিষ্ট সংস্করণ সম্পর্কে কথা বলেন। উভয় ভাষা বিকশিত হয় এবং একটি ভোঁতা বিবৃতি যেমন

সি ++ সমর্থন করে /* … */এবং // …মন্তব্য করে যখন সি কেবল /* … */শৈলী সমর্থন করে ।

সঠিক বা ভুলও নয়।

  1. যদি # 1 এর উত্তর হ্যাঁ হয় তবে আমি এমন একটি প্রোগ্রামকে কীভাবে কল করব যেখানে সি এবং সি ++ এর মিশ্রণ ব্যবহার করা হবে?

যেহেতু ভাষাগুলি ওভারল্যাপ করেছে তাই প্রতিটি সি প্রোগ্রামে এমন অংশ থাকবে যা সি ++ এবং এর বিপরীতে দেখাবে। তবুও, লেখক সম্ভবত একটি সি বা সি ++ সংকলক ব্যবহার করে স্থির হয়ে উঠবেন। চলুন "প্রোগ্রামে লেখা আছে সি " যদি এটি একটি সি কম্পাইলার এবং "প্রোগ্রামে লেখা আছে সঙ্গে কম্পাইল করা হয় সি ++ যদি তাদের সি ব্যবহার ++, কম্পাইলার", এমনকি যদি তারা যেকোন আধুনিক সি ++ বৈশিষ্ট্য ব্যবহার করতে অস্বীকার করতে পারে। কিছু লোক সি-স্টাইল সি ++ হিসাবে এই জাতীয় সি ++ কোড উল্লেখ করে । অতিরিক্ত লোডিং, ব্যতিক্রম, বহুবিজ্ঞান, টেমপ্লেট এবং I / O এর অনুপস্থিতি এই জাতীয় কোডের একটি সাধারণ বৈশিষ্ট্য প্রবাহিত করে।

পারলে, এর পরিবর্তে, কিছু ফাইল সি লিখিত হয় এবং একটি সি কম্পাইলার দিয়ে কম্পাইল এবং কিছু অন্যান্য ফাইল C ++ লিখিত এবং একটি সি ++ কম্পাইলার, এবং তারপর সঙ্গে সংকলিত একসঙ্গে লিঙ্ক বস্তুর ফাইল, আমি বলতে হবে যে, "প্রোগ্রামে লেখা আছে একটি সি এবং সি ++ "এর মিশ্রণ , বাস্তবে, আপনি ইতিমধ্যে করেছেন।

যাইহোক, পরিবর্তে, লেখকগণ প্রতিটি ফাইলকে এমনভাবে লিখতে খুব যত্ন নিয়েছিলেন যাতে এটি সি বা সি ++ সংকলক দিয়ে তৈরি করা যায় এবং ফলস্বরূপ প্রোগ্রামটি একই কাজ করতে পারে, আপনি বলতে পারেন যে "প্রোগ্রাম সি এবং সি ++ এর একটি সাধারণ উপসেটে রচিত ।

পরবর্তীটি প্রায়শই শিরোনাম ফাইলগুলির ক্ষেত্রে হয় যা সি এবং সি ++ কোডের মধ্যে ভাগ করা উচিত। এই জাতীয় কোড লেখা সহজ, উপায় দ্বারা। আপনি আরও যে জোর শুধুমাত্র যেমন নির্মান ব্যবহার করা হয়েছে যে সি এবং সি ++ বৈধ করতে চান তবে নির্বাচন এবং ব্যাপকভাবে বিভিন্ন কম্পাইলার বিক্রেতাদের দ্বারা সমর্থিত শব্দটি একটি পোর্টেবল সি এবং সি ++ সাধারণ উপসেট ব্যবহার করা যেতে পারে এই জোর।

  1. এই দু'টিই "আলাদা" ভাষা হওয়ায় সম্ভবত এটি সম্ভবত যে কোনও সময় সি ++ সংকলক সি ভাষায় লিখিত সমর্থনকারী কোডটি বন্ধ করে দেয় (যেহেতু আধুনিক সি ++ পয়েন্টার, গতিশীল মেমরি হ্যান্ডলিং ইত্যাদির মতো বেসিক স্টাফগুলির জন্য সি মানসিকতা থেকে সরে গেছে)?

আমি নিশ্চিত না যে আমি এই প্রশ্নটি বুঝতে পেরেছি। যেহেতু সি এবং সি ++ হয় বিভিন্ন ভাষায়, আপনি তাদের এক জন্য একটি কম্পাইলার অপরের জন্য লিখিত একটি প্রোগ্রাম গ্রহণ আশা করতে পারে না। যাইহোক, সংকলকগুলি প্রায়শই একটি মডুলার উপায়ে ডিজাইন করা হয় এবং যদি কোনও সংকলকটিতে সি ++ ফ্রন্ট-এন্ড থাকে তবে সম্ভাবনা ভাল থাকে তবে এটির সি ফ্রন্ট-এন্ডও থাকবে। (আপনি তারপরে কমান্ড লাইন সুইচ বা অনুরূপ মাধ্যমের মাধ্যমে আপনি তাদের মধ্যে কোনটি বেছে নিতে চান তা বেছে নিতে পারেন both) যতক্ষণ না উভয় ভাষা ব্যাপকভাবে ব্যবহৃত হবে ততক্ষণ এটি খুব সম্ভবত সম্ভাব্য বলে মনে হচ্ছে যে এটি পরিবর্তন হতে চলেছে। "আধুনিক সি ++" সম্পর্কে আপনার বক্তব্য আমি মনে করি মূলত ভাল কোডিং মান এবং স্ট্যান্ডার্ড লাইব্রেরির বিষয়। থেকে কম্পাইলার এর দৃষ্টিকোণ, উভয় ভাষায় বিবর্তনের বরং বিচ্যুত চেয়ে সমকেন্দ্রি করা হয়।

  1. সামঞ্জস্যতা বজায় রাখতে সি / সি ++ এর মান তৈরি করা লোকদের মধ্যে এখনই কি কোনও সহযোগিতা রয়েছে?

হ্যাঁ. সি ++ 11 এবং সি 11-এ প্রবর্তিত মেমরি মডেল এবং পারমাণবিক অপারেশন লাইব্রেরি একটি ভাল উদাহরণ। দেখে মনে হচ্ছে উভয় ভাষার ডিজাইনাররা বুঝতে পেরেছেন যে সামঞ্জস্যতা গুরুত্বপূর্ণ এবং এটি উন্নতির দিকে কাজ করছে। ব্যক্তিগতভাবে, আমি চাই যে এই সহযোগিতা আরও তীব্র হয় এবং দুটি আইএসও ওয়ার্কিং গ্রুপ সম্ভবত এতে যোগ দিয়েছিল তবে আমার ইচ্ছাটি গুরুত্বপূর্ণ নয়।

সিজনিয়াল প্রোগ্রামিং ল্যাঙ্গুয়েজের ৪ র্থ সংস্করণের ৪৪.৩ ডলারে সি এবং সি ++ এর বিভিন্ন সংস্করণের মধ্যে পার্থক্য এবং সাধারণতার বিষয়ে বাজরান স্ট্রস্ট্রপ আলোচনা করেছেন , যার উপায়ে বলা হয়েছে, "সি / সি ++ সামঞ্জস্যতা" শিরোনাম। শব্দটির ব্যবহার আসলে এই ক্ষেত্রে উপযুক্ত হতে পারে কারণ এটি কী বোঝাতে চাইছে তা স্পষ্ট।

  1. যদি # 4 হ্যাঁ হয়, আধুনিক সি ++ (11/14/17) এর উপস্থিতির সাথে এই জাতীয় সহযোগিতা অদূর ভবিষ্যতে শেষ হতে পারে

উপরে আলোচিত হিসাবে, এটি সি ++ 11 এ ঘটেছিল এবং এটি প্রত্যাশিত / প্রত্যাশিত / আবার ঘটতে হবে বলে আশা করা হচ্ছে।


কীভাবে এটি সঠিক বা ভুল হতে পারে না?
জেডিগোগস

4
"সবুজ জিনিস ব্যয়বহুল" এই উক্তিটির সাথে এর যথাযথ সংজ্ঞাযুক্ত সত্যের মূল্য নেই। সি এবং সি ++ এর সংস্করণগুলির নির্দিষ্ট সংমিশ্রণের জন্য এটি সত্য, অন্যদের কাছে এটি মিথ্যা।
5gon12eder

5

সি / সি ++ হ'ল সি এবং সি ++ এর ছেদ।

int new;সি / সি ++ নয়, এবং তাও নয় vector<int> foo;

একইভাবে, C89 / C99 এই দুই ভাষার, যেখানে তন্ন তন্ন ছেদ হয় enum bool { false, true };বা for(int i = 0;;)অনুমোদিত হয়।

এবং সি ++ 11 / সি ++ 14, ইত্যাদি

সি ++ 11 এবং সি ++ 14 এর অধীনে সংকলিত (এবং সঠিকভাবে চলমান) কোডটি লেখা সম্ভব, যদিও একটির অধীনে সংকলনটি এটি অন্যটির অধীন সংকলিত বোঝায় না। আসলে, অনেক লোক এটি করে।

এবং প্রচুর লোক কোড এবং সি এবং সি ++ এ কাজ করে।

স্পষ্টতই, ওভারল্যাপটি যত বেশি হবে, তত বেশি সংবেদনশীল হয়; আমি সি / সি ++ / জাভা কোড সম্পর্কে কোনও প্রশ্ন দেখার আশা করি না।


যদিও এই ভাষাগুলির একটি সাধারণ উপসেট সম্পর্কে কথা বলার "জ্ঞান" আসে না, তবে এই উপসেটটিতে অনেক প্রশ্নের উত্তর থাকবে না, উদাহরণস্বরূপ সি এবং সি ++ এ মূল () কী ফিরে আসা উচিত?

তবে আপনি সেই কোড সম্পর্কে কথা বলতে পারেন যা একাধিক ভাষার স্পেসিফিকেশনের জন্য কাজ করে, সেই চশমাগুলি "সংস্করণ" বা "ভাষার নাম" বা অন্যথায় আলাদা করা যায় কিনা।


3

এটি এমন কিছু প্রতিক্রিয়া যা এই অবস্থানটির প্রতিক্রিয়া যা "এই প্রোগ্রামারদের জন্য যা একটি ধাতব কাছাকাছি কাজ করে এবং পরিচালনার প্রসঙ্গে ঠিক আছে" এমন উত্তর এবং মন্তব্যে কিছু দেখা যায়।


আমি যুক্তি দিয়েছি যে এমনকি সেই ব্যাখ্যাটিও যত্ন সহকারে নেওয়া উচিত।

কমপক্ষে 90 এর দশকের মাঝামাঝি থেকে শুরু করে যদি আপনি কোনও সি ++ প্রোগ্রামার চান এবং যিনি নিজেকে সি প্রোগ্রামার হিসাবে বর্ণনা করেছেন কেউ প্রয়োগ করেছেন তবে আপনাকে জিজ্ঞাসা করতে হবে যে তারা অবজেক্ট অরিয়েন্টেড ডিজাইন সম্পর্কে কতটা জানেন, কোনও বস্তুর ডিবাগিংয়ের সাথে তাদের কতটা অভিজ্ঞতা আছে ওরিয়েন্টেড প্রসঙ্গ এবং টেমপ্লেট গ্রন্থাগারগুলি ব্যবহারের তাদের দক্ষতা সম্পর্কে। আপনি সাক্ষাত্কার এবং নিয়োগের প্রক্রিয়া চলাকালীন ঠিক এই সমস্যাগুলি অনুসন্ধান করতে চান।

ফ্লিপ দিকে, সি ++ গুরুরা "আধুনিক সি ++" ঠেলাঠেলি শুরু করার দশকেরও বেশি সময় পেরিয়েছে যার অর্থ খালি পয়েন্টার থেকে নিরাপদ পয়েন্টার অবজেক্ট এবং ইটারেটর ভিত্তিক আইডিয়ামগুলিতে সরে যাওয়ার উপর জোর দেওয়া হয়েছে। সি ++ 11 এর উত্থানের সাথে সাথে এখন বহু-দৃষ্টিকোণ প্রোগ্রামিংয়ের জন্য সুস্পষ্ট সমর্থন রয়েছে এবং কোডের দিকে ধাক্কা যা কোনও খালি পয়েন্টার প্রদর্শন করে না খুব শক্তিশালী। এর অর্থ হ'ল আমি যদি আজ একটি সি পজিশনের জন্য কোনও সি ++ প্রোগ্রামারকে সাক্ষাত্কার দিয়ে থাকি তবে আমি এই ব্যক্তিটি সত্যিকারের, ফুট-শ্যুটিং-সক্ষম পয়েন্টারগুলির সাথে কতটা পরিচিত তা খতিয়ে দেখে খুব উদ্বিগ্ন হব।

আমি আজকাল ব্যবসায়ের সাথে নেই (স্ট্যাক ওভারফ্লো যখন শৈশবকালীন সময়েও ছিলাম তখনও), সুতরাং কল্পিত ইন্টারভিউয়ের ক্রস-ওভার দক্ষতা কতবার না হয় সে সম্পর্কে আমি কোনও অনুমান করার চেষ্টা করব না, তবে আমি মনে করি যে প্রায়শই প্রয়োগ করা ভাষাগুলি এখন সত্যিই খুব আলাদা।

সংক্ষেপে "সি / সি ++" কেবল প্রযুক্তিগত ক্ষেত্রেই নয়, বেশিরভাগ ব্যবসায়িক প্রসঙ্গেও বাদ দেওয়া উচিত।


এটি নির্দেশ করার একটি ভাল উপায় যে এটির অর্থ "সি বা সি ++, কে জানে", "সি এবং সি ++, একসাথে যুক্ত", "সি এবং সি ++, ছেদটি", বা "কে বা সি ++, কে যত্নশীল" তা বোঝায় কিনা তার দ্ব্যর্থহীনতা ক্রমবর্ধমান কম যুক্তিসঙ্গত, এমনকি যেখানে এটি কোনওরকম দূরে সরে যেতে পারে।
ডিসিপ্লিকেটর

2

এই প্রশ্নের সর্বাধিক সহজ উত্তর হ'ল আপনার কখনই সেই শব্দটি ব্যবহার করা উচিত হয়নি । এটি এমন একটি পদ যার অস্তিত্ব থাকা উচিত নয়। এর কোন অর্থ নেই। প্রতিটি প্রোগ্রাম হয় সি, বা সি ++ হয়।

এবং সি ++ x0, সি ++ 11 (বা সাধারণ সি ++ 11/14/17 সাধারণভাবে) উপস্থিত না হওয়া পর্যন্ত এটি শান্ত ছিল।

C ++ 98 এবং 03 ক্লাস সহ দূরবর্তীভাবে সিও নয়। যে আপনাকে এই শিখিয়েছে সে ছিলে না জানি এবং আপনি সেগুলি ভুলে যেতে পারেন। এটি কখনই সঠিক ছিল না।


এই সম্পূর্ণ সত্য নয়। এক সময় এমন একটি পৃষ্ঠা ছিল যা "সি / সি ++" নামক ভাষার জন্য প্রস্তাবিত ভাষার নির্দিষ্ট বর্ণনাকে বর্ণনা করেছিল যা অন্যান্য বিষয়গুলির মধ্যে একটি ধরণের সিস্টেমের (কাছাকাছি) অনুপস্থিতি নির্দিষ্ট করে। দুঃখজনকভাবে, পৃষ্ঠাটি তখন থেকে নামানো হয়েছে, এবং এটি হোস্ট করা সাইটটি তখন থেকে একটি রোবটস টেক্সট স্থাপন করেছে যা আর্কাইভ.অর্গ থেকে আর্কাইভ কপিটি মুছে ফেলেছে।
গ্রেফ্যাড

1
: আহা, আমি archive.is উপর একটি কপি পেয়েছি নীতি , বাক্য গঠন এবং শব্দার্থবিদ্যা
গ্রেফ্যাড

5
"প্রতিটি প্রোগ্রাম হয় সি, বা সি ++ হয়।" আমি একমত নই সি প্রোগ্রাম নেওয়া এবং এটি একবারে সি ++ একটি ফাইলে পোর্ট করা (এটি একটি ফাইলের জন্য একটি সংকলক বিকল্প পরিবর্তন করে) বেশ সাধারণ। কিছু ফাইল কখনও পোর্ট করা যায় না এবং চিরকালের জন্য সি থাকে। এই জাতীয় প্রোগ্রাম সি এবং সি উভয়তে লেখা হয়েছে
নিকি

আসলে তা না. এই প্রোগ্রামটি সাবপ্রোগ্রমে গঠিত, যার প্রতিটিই হয় সি বা সি ++। প্রতিটি টিইউ, যা সম্পূর্ণ প্রোগ্রাম হিসাবে যতদূর সংকলক সম্পর্কিত, এটি সি বা সি ++ হিসাবে সংকলিত হয়।
ডেডএমজি

3
এটি এমন নয় যে "প্রতিটি প্রোগ্রাম হয় হয় সি, বা সি ++"। অধ্যাপক বার্জন স্ট্রস্ট্রুপ বলেছেন: 'ভাল লিখিত সি আইনী সি ++ তেও থাকে। উদাহরণস্বরূপ, কার্নিগান ও রিচি-র প্রতিটি উদাহরণ: "দ্য সি প্রোগ্রামিং ল্যাঙ্গুয়েজ (২ য় সংস্করণ)" এছাড়াও একটি সি ++ প্রোগ্রাম '' stroustrup.com/bs_faq.html#C-is-subset
বেন

1

ধারণাগতভাবে, সি উত্স ফাইলগুলি ডিজাইনে কোনও বিশেষ অসুবিধা হওয়া উচিত নয় যাতে সেগুলি সি ++ এর সাথেও সংকলন করা যায়। এটি করার জন্য কিছু উল্লেখযোগ্য সুবিধা থাকতে পারে। উদাহরণস্বরূপ, একটি এম্বেড থাকা সিস্টেমের জন্য কোড লেখার সময় একটি হোস্ট করা পিসি পরিবেশে কোডটি পরীক্ষা করতে সক্ষম হতে কখনও কখনও সহায়ক হয়। কোডটি যদি C ++ হিসাবে পরিষ্কারভাবে সংকলিত হয় তবে "MOTOR_ENABLE = 1" এর মতো একটি বিবৃতি পাওয়া সম্ভব; এম্বেড থাকা সিস্টেমে একটি অস্থির আই / ও বিট লিখুন (সি হিসাবে সংকলিত), তবে পিসিতে ইমুলেশন লজিক ট্রিগার করুন (সি ++ হিসাবে সংকলন)। সম্ভবত পিসিতে একটি সি ++ টাইপ ডিজাইন করা সম্ভব হবে যা একটি ইউন্ট 16_t ছোট এমবেডড সিস্টেমে যেভাবে আচরণ করে (যেমন উদাহরণ হিসাবে দেওয়া u16 x=65533;, সংকলকটির মান বিবেচনা করতে হবে)x*xনয় হিসাবে, তার ইচ্ছা মতো কিছু করার নিখরচায় রাজত্ব থাকার চেয়ে), যদিও এখনও আমার অনুকরণকারীদের মধ্যে কেউই এটি অন্তর্ভুক্ত করেনি [অংশ হিসাবে কারণ আমি যে সি ++ সংকলকগুলি ব্যবহার করেছি তারা এরকম ক্ষেত্রে অসচেতন কিছুই করেনি]।

দুর্ভাগ্যক্রমে, সি প্রোগ্রামারস এবং সি ++ প্রোগ্রামারগুলির একে অপরের প্রতি পর্যাপ্ত প্রতিষেধক রয়েছে যা বিভিন্ন বছরের পর বছর ধরে সামঞ্জস্যপূর্ণ উপায়ে বিকশিত হয়েছিল। C89 যখন সি ++ (যেমন ফাংশন প্রোটোটাইপস) এর আরও কিছু দরকারী বৈশিষ্ট্যগুলি খাপ খাইয়ে নেওয়ার চেষ্টা করেছিল তখন মনে হয় এমন একটি দৃষ্টিভঙ্গি উদ্ভূত হয়েছে যে প্রোগ্রামাররা যারা সি ++ এর যে কোনও বৈশিষ্ট্য চায় তাদের সি ++ ব্যবহার করা উচিত, সেখানে এমন অনেক পরিস্থিতি রয়েছে যেখানে এই পরিস্থিতি রয়েছে সি ++ এর কয়েকটি বৈশিষ্ট্য ব্যবহার করতে সক্ষম হতে সহায়তা করুন (উদাহরণস্বরূপ, যেগুলির প্রয়োজন নেই এমন অন্যান্য বৈশিষ্ট্যগুলির সাথে যুক্ত ব্যয়গুলি গ্রহণ না করে স্থিতিশীল বা স্ট্যাটিক ইনলাইন সংযোগের সাথে ওভারলোড করার ক্ষমতা (যেমন রফতানির সাথে যুক্ত নাম মংলিং) অতিরিক্ত বোঝা ফাংশন)।

যদিও C89 এবং C ++ 98 এর ছেদটি একটি কার্যক্ষম ভাষা, তবে C ++ এর পরবর্তী সংস্করণগুলির সাথে সি এর পরবর্তী সংস্করণগুলির ব্যবহারযোগ্য সুপারসেট সম্ভবত বড় হওয়ার চেয়ে সঙ্কুচিত হয়ে গেছে (স্ট্রাক্ট অ্যালিয়াসিং রুলের মতো জিনিসগুলির জন্য ধন্যবাদ) এবং ট্রেন্ডগুলি সর্বদা- ক্রমবর্ধমান বিড়ম্বনা


1
"সি ++ 95" কী? একটি প্রযুক্তিগত রিপোর্ট?
বেন ভয়েগট

1
আপনি যদি নিজের অভ্যন্তরীণ ফাংশনগুলির জন্য ওভারলোডিং করতে চান তবে আপনার বাহ্যিকগুলির জন্য কোনও নাম ম্যাঙ্গেলিং না চান তবে আপনি প্রাক্তনটিকে একটি বেনামে রাখতে পারেন namespaceএবং পরবর্তীটি হিসাবে ঘোষণা করতে extern "C"পারেন, তারপরে একটি সি ++ সংকলক ব্যবহার করুন।
5gon12eder

@ বেনভয়েগ: আমার কলপা। আমার এটা দেখা উচিত ছিল। সি 99+ সংস্করণ সি 99 এর আগে। যখন C89 বেরিয়েছে, এটি সিটিকে আরও সি ​​++ এর মতো করে দেওয়ার চেষ্টা করেছিল, তবে সি 99 অবশ্যই বেশ কয়েকটি বৈশিষ্ট্য যুক্ত করেছিল যা সি ++ এর সাথে অবশ্যই আগ্রহী ছিল না (যেমন ভেরিয়েবল-দৈর্ঘ্যের অ্যারে)। আমি সি ++ তে খুব বেশি প্রোগ্রাম করি না, তবে আমি মনে করি যে বিচ্ছিন্ন বৈশিষ্ট্যগুলি যেগুলি সহায়তা করেছে তার থেকে আরও কয়েকটি সি ++ বৈশিষ্ট্য সিগুলিকে আরও বেশি সহায়তা করবে।
সুপারকেট

@ 5gon12eder: আমি কখনও সি প্রকল্পে সি ++ কোড লিঙ্ক করার চেষ্টা করিনি। এগুলি কি স্থির / ইনলাইন হওয়া বা extern "C"অন্যান্য জটিলতা (যেমন স্ট্যাটিক-অবজেক্ট ইনিশিয়ালাইজেশন ইত্যাদি) থাকা কি সত্যই সহজ ? সি ++ তে এমন কোনও উপায় রয়েছে যাতে ম্যাক্রোকে foo(1234)আহ্বান জানানো foo_const(1234)যায় foo(x)[ যখন xধ্রুবক হয় না] কোনও foo_var(x)ক্রিয়াকলাপটি চালিত করে? এমবেডেড কোডে এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে "ফাংশন" এর SET_PORT(port, state)জন্য বন্দর এবং রাজ্য উভয়ই কিনা তার ভিত্তিতে থ্রি-ফর্ম রাখতে পছন্দ করা উচিত ...
সুপারক্যাট

... সংকলন-সময় ধ্রুবক, বন্দর ধ্রুবক তবে রাষ্ট্র নয়, বা বন্দর বা রাজ্য উভয়ই ধ্রুবক নয়। টেমপ্লেট বা অন্য কোনও স্ট্যান্ডার্ড সি ++ প্রক্রিয়া ব্যবহার করে পরিষ্কারভাবে এটি সম্পাদন করার কোনও উপায় আছে, বা কেবলমাত্র জিসিসি এক্সটেনশনের সংকলকগুলিতেই এটি সম্ভব?
সুপারক্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.