আমার আইএফের বিবৃতি কেন বিশ্বব্যাপী দেখতে পাবে না?


14

আমি বরং আরডুইনো প্রোগ্রামিংয়ে নতুন। নিম্নলিখিত বিট কোডটি সংকলন করতে আমার সমস্যা হচ্ছে:

const int relay1 = 10;  //Power Relay 1
const int relay2 = 11;  //Power Relay 2
const int relay3 = 12;  //Toggle Relay
const int button1 = 3;  
const int button2 = 4;
const int button3 = 5;

//---Button States---\\
int button1State;   //Current state of Button 1
int button2State;   //Current state of Button 2
int button3State;   //Current state of Button 3
int button1State_prev = LOW;  //Previous state of Button 1
int button2State_prev = LOW;  //Previous state of Button 2
int button3State_prev = LOW;  //Previous state of Button 3

//---General Variables---\\
int userSelection = 0;
int interlockState = 0;
int platformState = 0;

//---Interval-Tracking Variables---\\
unsigned long lastTime_Debounce1 = 0;   //Button 1 debounce time
unsigned long lastTime_Debounce2 = 0;   //Button 2 debounce time

//---Activity Delays---\\
const unsigned int relayDelay = 10;           //Delay between relay actions (ms)
const unsigned int debounceDelay = 60;        //Delay for button de-bouncing (ms)

void setup() {
  //Configure Pins
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);

  digitalWrite(relay1, LOW);
  digitalWrite(relay2, LOW);
  digitalWrite(relay3, LOW);
}

void loop() {
  //Read value of each input pin
  int button1Reading = digitalRead(button1);  //Current reading of Button 1
  int button2Reading = digitalRead(button2);  //Current reading of Button 2
  int button3Reading = digitalRead(button3);  //Current reading of Button 3

  //Debounce Button1
  if (button1Reading != button1State_prev) {
    lastTime_Debounce1 = millis();
  }
  button1State_prev = button1Reading;
  if ((millis() - lastTime_Debounce1) > debounceDelay) {
    if (button1Reading != button1State) {
      button1State = button1Reading;
    }
  }

  //Debounce Button2
  if (button2Reading != button2State_prev) {
    lastTime_Debounce2 = millis();
  }
  button2State_prev = button2Reading;
  if ((millis() - lastTime_Debounce2) > debounceDelay) {
    if (button2Reading != button2State) {
      button2State = button2Reading;
    }
  }

কোনও কারণে, সংকলকটি দৃ convinced়ভাবে নিশ্চিত হন যে lastTime_Debounce1লাইন 54-এ দ্বিতীয় আইএফ-বিবৃতিতে চলকটি ইন-স্কোপ হিসাবে ঘোষণা করা হয়নি। আমি কীভাবে এটি সম্ভব তা বুঝতে পারি না, যেহেতু প্রশ্নের মধ্যে পরিবর্তনশীল একটি সংজ্ঞায়িত এবং আরম্ভিক গ্লোবাল।

আমি যদি আইএফ-বিবৃতিগুলির প্রথম ত্রয়ীটির মন্তব্য-আউট করি তবে (হ্যান্ডলিং বোতাম 1), দ্বিতীয় ত্রয়ী (হ্যান্ডলিং বোতাম 2) এর সংকলন করতে সমস্যা নেই, যদিও এটি ঠিক একইভাবে একই জিনিসটি করে।

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

আমি অনুপস্থিত ভুলটি কেউ দয়া করে বলতে পারেন?


1
সিনট্যাক্স হাইলাইট করার ফলে সমস্যাটি আরও প্রকট হয়ে উঠবে কিনা তা দেখার জন্য আমি আপনার প্রশ্নটিকে সি ++ ট্যাগ দিয়ে ট্যাগ করেছি, তবে দুর্ভাগ্যক্রমে নয়।
নিক দম্ভোক্তি

উত্তর:


28

আপনার মন্তব্যে ব্যাকস্ল্যাশ সমস্যা। সি ++ ভাষার সংজ্ঞা অনুসারে, \লাইনের শেষে একটিটিকে "লাইনের ধারাবাহিকতা" হিসাবে ব্যাখ্যা করা হয়। সুতরাং, আপনার মন্তব্য পরবর্তী পংক্তিতে অবিরত হয় এবং আপনার পরিবর্তনশীল ঘোষণা এবং সূচনা মন্তব্য করা হয়।

নোটপ্যাড ++ এর মতো একটি ভাল সিনট্যাক্স হাইলাইটিং প্রোগ্রাম সহ আপনার কোডটি খোলার সময় এটি স্পষ্ট।

এখানে চিত্র বর্ণনা লিখুন

\\মন্তব্য লাইনের শেষে থেকে সমস্ত অপসারণ করা আপনার সমস্যার সমাধান করে।

পার্শ্ব দ্রষ্টব্য: আরও তথ্যের জন্য /programming//a/30290133/5296568 দেখুন । মাল্টি-লাইন ম্যাক্রো সংজ্ঞাতে যখন ব্যবহৃত হয় তখন একটি লাইনের শেষে ব্যাকস্ল্যাশগুলি আসলে কার্যকর হয়।


1
আমি অবাক হয়েছি এখানে কোড হাইলাইটার এটি ধরেনা।
WernerCD

2
@ ওয়ার্ননারসিডি স্ট্যাক এক্সচেঞ্জ কোড মার্কআপ কোড ব্লকে কোন ভাষা ব্যবহৃত হচ্ছে তা বুদ্ধিমানের সাথে সনাক্ত করার চেষ্টা করে, তবে কখনও কখনও এটি এটি করতে ব্যর্থ হয় এবং মনে করে যে এটি এমনটি নয়। আপনি স্নিপেটের আগে <! - ভাষা: সন্নিবেশ-ল্যাং-এখানে -> উল্লেখ করে এটি ঠিক করতে পারেন।
Nzall

1
@ নীজল উপরে নিকগ্যামনের মন্তব্য দেখুন; এমনকি স্ট্যাকওভারফ্লো সিনট্যাক্স হাইলাইটার, যখন সি / সি ++ মোডে রাখা হয় (সি ++ ট্যাগ যুক্ত করে), এটি সঠিকভাবে হাইলাইট করে না।
ম্যাক্সিমিলিয়ান গারহার্ড

কেন যে এমনকি কাজ করে? প্রথম \ দ্বিতীয়টি ডেমাস্ক করা উচিত নয় এবং এভাবে নতুন লাইনে মন্তব্য করা উচিত নয়?
নোভা

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