সি ++ কোড ফাইল এক্সটেনশন? .cc বনাম .cpp [বন্ধ]


599

আমি সি ++ কোড উভয় .ccএবং .cppফাইল উভয় হিসাবে সংরক্ষণ করা দেখেছি । দুই মধ্যে একটি পার্থক্য আছে?

গুগল শৈলী গাইড সুপারিশ বলে মনে হয় .cc, কিন্তু কোন ব্যাখ্যা প্রদান করে।

আমি মূলত লিনাক্স সিস্টেমের প্রোগ্রামগুলির সাথে উদ্বিগ্ন।


85
উপসংহার এটা কোন ব্যাপার না। সম্ভাব্য উত্স সিসি = সি সহ ক্লাস, সিপিপি = সি প্লাস প্লাস
Lazer

6
এটি ঝাঁকুনির জন্য গুরুত্বপূর্ণ ++। আপনি যখন এটি একটি নামের সাথে একটি সি ++ শিরোনাম ফাইলটি দেয় যা .h এর মধ্যে শেষ হয়, ঝনঝন ++ আপনাকে সতর্ক করে।
allyourcode

4
আরেকটি সরঞ্জাম যা একটু যত্ন করে তা হ'ল ইম্যাক্স। একটি পরিষ্কার .emacs কনফিগারেশনের সাহায্যে, খোলার (ইম্যাকস পার্লেন্সে "সন্ধান") একটি। এইচ ফাইল সি ++ - মোড নয়, সি-মোডকে সক্রিয় করে। অবশ্যই, আপনি ইম্যাক্সকে অন্য কিছু করার জন্য কনফিগার করতে পারেন (যেমন ইমাসের সমস্ত কিছুর সাথে), তবে আমার বক্তব্য সি-মোডটি বাক্সের বাইরের ডিফল্ট।
allyourcode

3
lintসংসারের চিন্তা, .Cসি ++ এবং .cসি কোন বোঝার সবটা সাথে আছেন .ccবা .cpp। কমপক্ষে এআইএক্স 6.1 এ।
জেসি চিশলম

5
"এতে কিছু যায় আসে না" এর উত্তর দেওয়া আসলেই সহায়তা করে না। প্রশ্নটি সম্পূর্ণ প্রাসঙ্গিক। ওপি দৃ stick় থাকার জন্য একটি কঠিন সম্মেলনের সন্ধান করছিল। এর থেকে উত্তম উত্তরটি হ'ল: "দুর্ভাগ্যক্রমে, সি ++ সম্প্রদায়ের এই বিষয়ে একটি শক্ত সম্মেলন নেই"। এটি দুঃখজনক, যদি আপনি এটি সম্পর্কে চিন্তা করেন। অন্যান্য সমস্ত জনপ্রিয় ভাষায় মনে হয় একটি একক, অনন্য ফাইল এক্সটেনশান রয়েছে। আমি একটি গুরুত্বপূর্ণ প্রকল্প যেমন সিসিএসির মতো ব্যবহার করি তাতে লেগে থাকি। তারা ব্যবহার.cc
লুসিও পাইভা

উত্তর:


703

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


88
ঠিক আছে, এটি একটি বৈধ পয়েন্ট, তবে এটি ব্যবহারকারীর প্রশ্নের উত্তর দেয় না।
বিকান্ত

319
সিসি টাইপ করতে দ্রুত
থ্যাং করুন

49
কেন এটি গৃহীত উত্তর? একটি নতুন প্রোগ্রামার জানেন না যে এটি কিছু যায় না এবং তারা একটি সহজ উত্তর প্রাপ্য।
রববেন_ফোর্ড_ ফ্যান_বয়

13
উত্তরটি কোনও কৌতূহলী এবং মননশীল প্রোগ্রামারটির পক্ষে একেবারেই যথেষ্ট নয়। আমি এই পৃষ্ঠায় উত্তরটি আরও বেশি পছন্দ করতে পারি কারণ এটির আরও বিশদ ব্যাখ্যা রয়েছে।
নভিন শাহরোদী

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

296

গনুহ জিসিসি সি ++ ফাইল হিসেবে নিম্নলিখিত সব স্বীকার করে, এবং জিসিসি মাধ্যমে এটি ডাকা সি ++ সংকলন কিনা নির্বিশেষে ব্যবহার করবে বা G ++,: .C, .cc, .cpp, .CPP, .c++, .cp, অথবা .cxx

জিসিসিতে .Cকেস সম্পর্কিত বিষয়গুলি নোট করুন , .cএটি একটি সি ফাইল যেখানে .Cএকটি সি ++ ফাইল রয়েছে (আপনি যদি সংকলকটিকে এটি নির্ধারণ করে দেয় যে এটি কীটি সংকলন করছে)।

জিসিসি বিশেষ হ্যান্ডলিং ইঙ্গিত করতে অন্যান্য প্রত্যয়কেও সমর্থন করে, উদাহরণস্বরূপ কোনও .iiফাইল সি ++ হিসাবে সংকলিত হবে তবে প্রাক প্রক্রিয়াজাত নয় (পৃথকভাবে প্রাক-প্রক্রিয়াজাত কোডের উদ্দেশ্যে)। সমস্ত স্বীকৃত প্রত্যয়টি gcc.gnu.orgবিশদ


5
"জিসিসিতে কেস সম্পর্কিত বিষয়গুলি" - উইন্ডোজ সম্পর্কে (যেহেতু এটি কেস-সংবেদনশীল)?
দেवेश খানদেলওয়াল

17
@ দেবেশ: উইন্ডোজও। তবে ওএস আপনাকে কেবলমাত্র কেস দ্বারা আলাদা আলাদা ফোল্ডারে দুটি ফাইল রাখতে বাধা দেবে।
ক্লিফোর্ড

23
@ দেবেশখণ্ডেলওয়াল তবে এটি কেস-সংরক্ষণ করা
ইয়থার্থ আগরওয়াল

229

মেকফাইল এবং অন্যান্য সরঞ্জামগুলির জন্য কোনটি ব্যবহার করতে হবে সে সম্পর্কে দুর্দান্ত পরামর্শ, কোন এক্সটেনশনটি কীভাবে ব্যবহার করা উচিত তা সিদ্ধান্ত নেওয়ার ক্ষেত্রে সিদ্ধান্ত নেওয়া আপনার পক্ষে কার্যকর উত্তর খুঁজে পেতে সহায়তা করার জন্য দুর্দান্ত পদ্ধতির approach

আমি খুঁজে পেয়েছি এমন কিছু .ccবনাম .cppতথ্যের সাহায্যে কেবল নিম্নলিখিতগুলি যুক্ত করতে চেয়েছিলাম । নীচে বিভিন্ন পরিবেশ দ্বারা বিভক্ত এক্সটেনশনগুলি রয়েছে ("সি ++ প্রিমার প্লাস" বই থেকে):

ইউনিক্স ব্যবহার করে: .C, .cc, .cxx,.c

গনুহ সি ++ ব্যবহার করে: .C, .cc, .cxx, .cpp,.c++

ডিজিটাল মঙ্গল ব্যবহার করে: .cpp,.cxx

বোরল্যান্ড সি ++ ব্যবহার করে: .cpp

ওয়াটকম ব্যবহার করে: .cpp

Microsoft ভিসুয়াল সি ++ ব্যবহার করে: .cpp, .cxx,.cc

Metrowerks CodeWarrior ব্যবহার করে: .cpp, .cp, .cc, .cxx,.c++

বিভিন্ন পরিবেশ বিভিন্ন এক্সটেনশন সমর্থন করে। আমিও এই প্রশ্নের উত্তর খুঁজতে চেয়েছি এবং এই পোস্টটি পেয়েছি। এই পোস্টে উপর ভিত্তি করে আমি সঙ্গে যেতে পারে .hppএবং .cppক্রস-প্ল্যাটফর্ম / ক্রস টুল স্বীকৃতি কর্মের জন্য।


5
এই উত্তরটি অন্যদের তুলনায় সত্যই উপস্থাপিত প্রশ্নটি মোকাবিলার চেষ্টা করার চেয়ে নিকটতম, যা কেউ দৃ stick়ভাবে স্থির থাকার জন্য একটি কঠিন সম্মেলনের সন্ধান করছেন। অন্যান্য ভাষাগুলিতে সেগুলি রয়েছে, তবে যতক্ষণ না ফাইল এক্সটেনশন সম্পর্কিত, সি ++ এর অভাব রয়েছে বলে মনে হচ্ছে।
লুসিও পাইভা

6
ইউনিক্স কোন অর্থে ব্যবহার করে না .cpp?
কিথ থমসন

ভিসি ++ 6.0 .cc ফাইল সমর্থন করে না।
xus

@ কিথথম্পসন ব্যবহারকারী ব্যবহারকারীর সিএইচসি উত্তর 181548
স্পাইরোস মুরেলাটোস

@ এসপিআরোসমৌরিল্টোস হ্যাঁ, তবে এটি এখনও এমনটিই ঘটেছে যে ইউনিক্সের মতো সিস্টেমে সি ++ কোড খুব সাধারণভাবে .cppসি ++ উত্স ফাইলগুলির জন্য ব্যবহার করে। (উদ্ধৃত উত্তরে উল্লেখ করা হয়েছে যে "সিপিপি" হ'ল সি প্রিপ্রোসেসরটির সংক্ষেপণ))
কিথ থম্পসন

78

.cppযতদূর আমি জানি সি ++ এর জন্য প্রস্তাবিত এক্সটেনশন। কিছু লোক এমনকি .hppসি + থেকে আলাদা করতে সি ++ শিরোনাম ব্যবহার করার পরামর্শ দেয়

যদিও সংকলকটি আপনি কী করেন তা যত্ন করে না, এটি ব্যক্তিগত পছন্দ।


60
আমি সি। + হেডারগুলির জন্য .hpp ব্যবহার করে .h ব্যবহার করা থেকে স্যুইচ করার সিদ্ধান্ত নিয়েছি; প্রাথমিকভাবে কারণ সম্পাদকদের মতো অন্যান্য সরঞ্জামগুলিও এটি জানতে হবে - গিসিসি সহ প্রাক্পম্পাইল্ড শিরোলেখগুলি ব্যবহার করার সময়, আপনি প্রাক-কম্পাইল করার সময় '-x সি ++ - শিরোনাম' বিকল্পটি ব্যবহার না করা সত্ত্বেও .h ফাইলগুলির জন্য সি ++ এবং .hpp ফাইলগুলির জন্য সি ++ ডিফল্ট হন ults একটি .h ফাইল।
jdkoftinoff

5
@jd। একমত। এইচ / সি ফাইলগুলি এইচপি / সিপিপি ফাইলগুলিতে রূপান্তরিত হলে এটি স্বয়ংক্রিয় সরঞ্জামগুলিকে কিছুটা সহজ করে তোলে।
পল নাথান

4
জি ++ একটি সি ++ শিরোলেখ হিসাবে শিরোনাম হিসাবে সনাক্ত করে না (শিরোনাম পূর্ববর্তীকরণের জন্য) তবে .এটি করে। এর কারণে আমি .cc / .hh .cpp / .hpp ব্যবহার করে শেষ করেছি কারণ সত্যিকারের কোনও পার্থক্য নেই।
ট্রিক

12
@ ট্রনিক: যেহেতু ৪.৩ গিগিটি .hpp স্বীকৃতি দেয়, gcc.gnu.org/onlinesocs/gcc-4.2.4/gcc/ সামগ্রিক-
সিজারব

3
@ চার্লসএডিস - হ্যাঁ, আমাকে একই ডিরেক্টরিতে "abcd.H" (সি ++ ইন্টারফেস) এবং "abcd.h" (সি ইন্টারফেস) প্রচুর কোড রূপান্তর করতে হয়েছিল "abcd.hpp" এবং "abcd.h "কারণ" উইন্ডোজ বাক্স বা ম্যাক ওএস এক্স বক্সে কেবল "এসএনএন কো" তৈরি করা বা আনজিপ করা (ডিফল্ট ফাইল সিস্টেমের সাথে) "ডুপ্লিকেট ফাইলের নামগুলির" কারণে ব্যর্থ হবে
jdkoftinoff

37

আমি ব্যক্তিগতভাবে .ccপ্রয়োগকারী ফাইলগুলির .hhজন্য, শিরোনামগুলির .inlজন্য এবং ইনলাইন / টেম্পলেটগুলির জন্য এক্সটেনশনটি ব্যবহার করি ।

আগেই বলেছি এটি মূলত স্বাদের বিষয়।

আমি যা দেখেছি , .ccআরো "মনে করা হয় ওপেন সোর্স প্রকল্প ভিত্তিক যেমন যেহেতু, কিছু মহান ওপেন সোর্স সফটওয়্যার কোডিং শৈলী পরামর্শ দেওয়া হয়"। cppআরও উইন্ডোইশ বলে মনে হচ্ছে।

--- সম্পাদনা

যেমনটি উল্লেখ করা হয়েছে, এটি "আমি যা দেখেছি" থেকে এটি ভুল হতে পারে। এটি কেবলমাত্র উইন্ডোজ সমস্ত প্রকল্প যা আমি ব্যবহার করেছি .cppএবং প্রচুর ওপেন সোর্স প্রকল্প (যা মূলত ইউনিক্স-পছন্দ অনুসারে) ব্যবহার করে .cc

স্টাইলগুলি কোডিং ব্যবহার করে উদাহরণ .cc:


1
আপনার এটার কোন উল্লেখ আছে? আমি কখনই ওএসএস। সিসি বনাম উইন্ডোজ। সিপিপি
ববি 20

6
ভিজ্যুয়াল স্টুডিও সি ++ এর জন্য .cpp ফাইল তৈরি করে। আমি এর পিছনে ইতিহাস জানি না।
নাটান ইয়েলিন

7
এলএলভিএম কোডিং স্ট্যান্ডার্ড .cpp / .h এর পক্ষে এবং -*- C++ -*-হেডারগুলিতে ট্যাগ লাগানোর চেষ্টা করছে বলে মনে হচ্ছে llvm.org/docs/ কোডিং স্ট্যান্ডার্ডস html ; মোজিলা কোডিং স্টাইল পরামর্শ দেয় .cpp / .h বিকাশকারী । Mozilla.org/en-US/docs/ মোজিলা / ডেভেলপার_গাইড / ;; কেডিপি
সস্তানিন

19

ব্যবহৃত অন্যান্য ফাইল এক্সটেনশনের অন্তর্ভুক্ত .cxxএবং .C(মূলধন সি)। আমি বিশ্বাস করি বাজর্ন স্ট্রস্ট্রপ .Cমূলত ব্যবহৃত হয়েছিল। .cppএটি সি প্রিপ্রোসেসরের নাম তাই এটি দুর্ভাগ্যজনক যে এটি সি ++ এর জন্যও ব্যবহৃত হয়েছিল।


13

অন্য বিকল্পটি হ'ল .cxxযেখানে x45 ° এর চেয়ে বেশি ঘোরানো হবে °

উইন্ডোজ, ম্যাক এবং লিনাক্স সমস্ত সমর্থন করে .c++তাই আমাদের কেবল এটি ব্যবহার করা উচিত।


12

বেশ কয়েকজন লোক বলে .ccকি কোনও কিছুর পক্ষে দাঁড়ায় না? এটা হতে পারে. সি ++ "সি উইথ ক্লাস" হিসাবে জীবন শুরু করেছিলেন।

এটি সত্য .ccএবং .cppবেশিরভাগ ইউনিক্স সিস্টেমে কমান্ডের নামও রয়েছে (যথাক্রমে সি সংকলক এবং সি প্রিপ্রোসেসর)।

আমি .cppএকচেটিয়াভাবে ব্যবহার করি তবে আমি উইন্ডোতে শুরু করেছি। .ccআরও বেশি ইউনিক্স কনভেনশন হ'ল, যদিও আমি এটি সেখানে কম এবং কম দেখছি। জিএনইউ মেকের নিয়ম রয়েছে .cppতাই এটি সম্ভবত পছন্দসই, এটি উইন্ডোজ এবং অন্য সব কিছুতে ডিফল্টরূপে কাজ করবে। অন্যদিকে আধুনিক সি ++ শিরোনামগুলির জন্য মোটেও কোনও এক্সটেনশন ব্যবহার করে না, আমি সত্যিই এটি পছন্দ করি না। আমার সমস্ত প্রকল্পগুলি .hশিরোনাম ফাইলগুলির জন্য ব্যবহার করে এবং তারা সি এবং সি ++ উভয়ই যথাসম্ভব সমর্থন করে extern "C"পরীক্ষার মাধ্যমে __cplusplus


2
তাহলে .cwc হওয়া উচিত নয়? :)
জোশুয়া

অনেক সংকলক নেমস্পেসগুলি সমর্থন করার আগে তারা মানক শিরোনামগুলির জন্য .h সম্প্রসারণও ব্যবহার করত। সাধারণত, সংকলকগণ হ'ল সংস্করণ সরবরাহ করে যা বিশ্বব্যাপী নেমস্পেসে লাইব্রেরি রাখে। এটি লিগ্যাসি কোড সমর্থন করে। আমি কোথাও একবার পড়েছি যে তাদের .h এক্সটেনশন না থাকার কারণটি হ'ল মানটি তাদের ফাইল হিসাবে না, তবে মূলত 'অন্তর্নির্মিত' হতে দেয়। তবে এটি অ্যাপোক্রিফাল হতে পারে।
ক্লিফোর্ড

11

প্রকল্প / দল দ্বারা ব্যবহৃত কনভেনশনটি কেবল অনুসরণ করুন।


11

আমি ব্যক্তিগতভাবে কখনই এমন .ccকোনও প্রকল্পে দেখিনি যা আমি কাজ করেছি, তবে সমস্ত প্রযুক্তিগত ক্ষেত্রে কম্পাইলার যত্ন নেবে না।

আপনার উত্সে বিকাশকারীরা কে কে খেয়াল রাখবে, তাই আমার টিমের নিয়মটি হল আপনার দলটি যা স্বাচ্ছন্দ্য বোধ করে তা দিয়ে চলে। যদি আপনার "দল" ওপেন সোর্স সম্প্রদায় হয় তবে খুব সাধারণ কিছু নিয়ে যান, যার মধ্যে প্রিয়টি .cppমনে হয়।


Github.com/google/googletest হিসাবে বেশ কয়েকটি সুপরিচিত প্রকল্পগুলি .ccসি ++ বাস্তবায়ন ফাইলগুলির জন্য ফাইল এক্সটেনশন হিসাবে ব্যবহার করছে
ভার্টেক্সওয়াহন

10

বেশিরভাগ স্টাইলের সম্মেলনের মতো, এখানে কেবল দুটি জিনিসই গুরুত্বপূর্ণ:

  1. আপনি যেখানে ব্যবহার করেন সেখানে সামঞ্জস্য বজায় রাখুন।
  2. কোনও নির্দিষ্ট পছন্দ ব্যবহারের উপর নির্ভর করে এমন কোনও ডিজাইন করবেন না।

এগুলি পরস্পরবিরোধী বলে মনে হতে পারে তবে তাদের প্রত্যেকের নিজস্ব কারণেই মূল্য রয়েছে।


8

.Cএবং .ccআমি দেখেছি (কয়েক) ইউনিক্স-ওরিয়েন্টেড সি ++ প্রোগ্রামগুলির জন্য মানক বলে মনে হচ্ছে। আমি সর্বদা .cppনিজেকে ব্যবহার করেছি, যেহেতু আমি কেবল উইন্ডোজটিতে সত্যই কাজ করি এবং এটি চিরকালের মতোই সেখানে স্ট্যান্ডার্ড।

আমি .cppব্যক্তিগতভাবে সুপারিশ করি , কারণ ... এটি "সি প্লাস প্লাস" হিসাবে দাঁড়িয়েছে। অবশ্যই এটি অবশ্যই জরুরী যে ফাইল এক্সটেনশনের সংক্ষিপ্ত শব্দগুলি হ'ল, তবে এই যুক্তিটি কি অপ্রতুলভাবে বাধ্যতামূলকভাবে প্রমাণিত করে যে অন্যান্য গুরুত্বপূর্ণ বিষয়গুলি শিফট কী (যা নিয়ম করে .Cএবং .c++) ব্যবহার করা সম্ভব নয় এবং যেখানে সম্ভব সেখানে নিয়মিত এক্সপ্রেশন মেটাচার্যাক্টরগুলি এড়ানো (যা নিয়ম .c++- দুর্ভাগ্যক্রমে আপনি .অবশ্যই অবশ্যই এড়াতে পারবেন না ))।

এটি বাতিল হয় না .cc, সুতরাং যদিও এটি সত্যিই কোনও কিছুর পক্ষে দাঁড়ায় না (বা এটি করে?) এটি সম্ভবত লিনাক্স-ওরিয়েন্টেড কোডের জন্য একটি ভাল পছন্দ।


2
তবে "সিপিপি" "সি প্রিপ্রসেসর" এর পক্ষেও দাঁড়াতে পারে। আসলে, আপনার সিস্টেমে "সিপিপি" প্রোগ্রামটি সম্ভবত সি প্রিপ্রসেসর ...
জেস্পার

8

আমি উত্স এবং শিরোনামের জন্য যথাক্রমে .C এবং .h ব্যবহার করেছি। সেই পছন্দটির সাথে একটি দুর্দান্ত জিনিস হ'ল, কমান্ড লাইনে, *.[Ch]সমস্ত কোড ফাইল নির্বাচন করা তার পক্ষে সহজ । ব্যবহার .Cক্ষেত্রে অসংবেদী ফাইল সিস্টেম এ একটি সমস্যা হতে পারে, কিন্তু যদি আপনি foo.cএবং foo.Cএকই ডিরেক্টরির মধ্যে, আপনি প্রাপ্য কি যাহাই হউক না কেন পেতে :)


8

মেকফিলের মধ্যে অন্তর্নিহিত নিয়ম ব্যবহারের জন্য .সিসি এক্সটেনশনটি প্রয়োজনীয়। মেকফিলগুলি সম্পর্কে আরও ভাল ধারণা পেতে এই লিঙ্কগুলির মাধ্যমে দেখুন তবে প্রধানত দ্বিতীয়টি দেখুন, কারণ এটি স্পষ্টভাবে সিসিটি এক্সটেনশনের উপযোগিতা বলে:

ftp://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html

https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html

আমি এখন এই সম্পর্কে শিখেছি।


আবার এগুলি কেবল .cppফাইল। কোন চিন্তা করো না ! :-)
টম টেলর

1
এতে বলা হয়েছে "আমরা আপনাকে '.C' এর পরিবর্তে C ++ উত্স ফাইলগুলির জন্য '.cc' প্রত্যয়টি ব্যবহার করতে উত্সাহিত করি।" আমি সন্দেহ করি যে এটি কেবল খারাপ শব্দ নয়। .Cসংবেদনশীল ফাইল সিস্টেম সহ সিস্টেমে ব্যবহার করা সমস্যাযুক্ত হতে পারে। উদাহরণস্বরূপ, ওভার makeব্যবহারের ক্ষেত্রে যতটা উদ্বিগ্ন কোনও বিশেষ সুবিধা আছে বলে আমি মনে করি না । সি ++ উত্স ফাইলগুলির জন্য মেকফিলগুলি ঠিক কাজ করে। .cc.cpp.cpp
কিথ থম্পসন

7

আপনি যে কোনও এক্সটেনশন ব্যবহার করবেন তা বিবেচ্য নয়। আপনি যা পছন্দ করেন তা বেছে নিন, নামকরণের সাথে সামঞ্জস্য থাকুন। এই নামকরণ কনভেনশনটি সম্পর্কে আমি অবগত কেবল ব্যতিক্রমটি হ'ল আমি ফাইলগুলি সংকলন করতে WinDDK(বা এটি WDKএখন?) করতে পারিনি .cc। লিনাক্সে যদিও এটি খুব কমই সমস্যা।


6

আমি একটি নতুন সি ++ প্রকল্প শুরু করছি এবং সি ++ শৈলীতে সর্বশেষটি সন্ধান করতে শুরু করেছি। আমি ফাইল নামকরণের বিষয়ে এখানেই শেষ করেছি এবং আমি ভেবেছিলাম যে আমি কীভাবে আমার পছন্দটি নিয়ে এসেছি তা ভাগ করব। এখানে যায়:

স্ট্রাস্ট্রপ এটিকে প্রযুক্তিগতের চেয়ে ব্যবসায়িক বিবেচনা হিসাবে বেশি দেখেন ।

তার পরামর্শ অনুসরণ করে, আসুন টুলচেনগুলি কী প্রত্যাশা করে তা পরীক্ষা করে দেখি।

ইউএনআইএক্স / লিনাক্সের জন্য, আপনি নীচের ডিফল্ট জিএনইউ .c ফাইল ফাইল প্রত্যয়ের পক্ষে হিসাবে বিধি তৈরি করতে পারেন, .cpp এবং .C বিধিগুলি কেবলমাত্র উপমা হিসাবে:

$ make -p | egrep COMPILE[^=]+=
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cpp = $(COMPILE.cc)
COMPILE.C = $(COMPILE.cc)

(দ্রষ্টব্য: কোনও ডিফল্ট COMPILE.cxx ওরফে নেই)

সুতরাং আপনি যদি ইউএনআইএক্স / লিনাক্স লক্ষ্য করে থাকেন তবে .সিসি এবং .cpp উভয়ই খুব ভাল বিকল্প।

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

ম্যাকোসকে টার্গেট করার সময়, নোট করুন যে Xcode .cpp / .hpp পছন্দ করে (সবেমাত্র Xcode 10.1 এ পরীক্ষা করা হয়েছে)। ব্যবহার করতে আপনি সর্বদা শিরোনাম টেমপ্লেট পরিবর্তন করতে পারেন।

এটি মূল্যবান কিসের জন্য, আপনি নিজের পছন্দ অনুসারে কোড বেসগুলিতেও নিজের সিদ্ধান্তটি স্থির করতে পারেন। গুগল .cc ব্যবহার করে উদাহরণস্বরূপ এবং LLVM libc ++ ব্যবহার করে।

হেডার ফাইল সম্পর্কে কি? এগুলি সি বা সি ++ ফাইলের প্রসঙ্গে সংকলিত হয়, সুতরাং .hpp থেকে আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা ফাইলের সংকলন বা বিল্ড সিস্টেমের দরকার নেই। আপনার সম্পাদক / আইডিই দ্বারা সিনট্যাক্স হাইলাইটিং এবং স্বয়ংক্রিয় ইন্ডেন্টেশন কোনও সমস্যা হতে পারে, তবে এটি সমস্ত .h ফাইলগুলিকে সি ++ মোডের সাথে যুক্ত করে স্থির করা হয়েছে। উদাহরণ হিসাবে, লিনাক্সে আমার ইমাস কনফিগারেশন সমস্ত .h ফাইলগুলি সি ++ মোডে লোড করে এবং এটি সি শিরোনামগুলি ঠিকঠাক সম্পাদনা করে। এর বাইরে, সি এবং সি ++ মিশ্রিত করার সময়, আপনি এই পরামর্শটি অনুসরণ করতে পারেন ।

আমার ব্যক্তিগত উপসংহার : .cpp / .h হ'ল ন্যূনতম প্রতিরোধের পথ।


3

অন্যরা যেমন আমার আগে লিখেছিল, শেষে এটি আপনার প্রকল্প / দল / সংস্থার দ্বারা ব্যবহৃত হচ্ছে।

ব্যক্তিগতভাবে, আমি ব্যবহার করছি না cc এক্সটেনশন , আমি এক্সটেনশনের সংখ্যা হ্রাস করার চেষ্টা করছি এবং এগুলি বাড়িয়ে তুলছি না, যদি না স্পষ্ট মান থাকে (আমার মতে)।

এর মূল্য কী, এটি আমি ব্যবহার করছি :

c - শুধুমাত্র খাঁটি সি কোড, কোনও ক্লাস বা পদ্ধতি সহ স্ট্রাক্ট নেই।

cpp - সি ++ কোড

hpp- কেবল শিরোনামের কোড। বাস্তবায়নগুলি শিরোনামে রয়েছে (টেম্পলেট শ্রেণীর মতো)

h- উভয় সি / সি ++ এর জন্য শিরোনাম ফাইল। আমি একমত হয়ে অন্য একটি পার্থক্য করা যেতে পারে, কিন্তু আমি যেমন লিখেছি, সরলতার জন্য আমি এক্সটেনশনের সংখ্যা কম করার চেষ্টা করছি। কমপক্ষে আমি যে সি ++ প্রকল্পগুলিতে কাজ করেছি hসেগুলি থেকে খাঁটি-সি এর জন্য ফাইলগুলি খুব বিরল, তাই আমি আর একটি এক্সটেনশন যুক্ত করতে চাইনি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.